Skip to main content

Full text of "Peeker "Magazin für Microcomputer", Issue 7-1985"

See other formats


_ Nr.7785 Juli 


DM 6,50, sfr 6,50,65 50, L115900, Hi 750° 








FERNEN 


MAGAZIN FÜR APPLE- Bi | & 




























AZE JSR | BR | 9n0D N 
= 56B04 FE ee 
A27 | | 
O or 

E a | 5 JA | hear 
A26 \ | 
BEE Zu 3 SAAIF are 
A25 
124 u EE 
2Py Bi 





j 


\22 









Fo ma BE ııı 
6502 leic + EX 
rdstar und 





\20 


so 
Mimird-F -Festplatt el 


$ kan be -EPROM 


VIE Hüchig 


PUBLIKATION 











Interfaces für Computer mit Applebus + Interfaces für Computer mit Applebus + Interf: 





AP 13 und AP 17 
RAM-Karten zum Einsatz als Pseu- 
dodisk unter CP/M, USCD und 
APPLE-DOS. Speichergröße von 
64 kByte bis 256 kByte. 
Bestell-Nr.: A 1013 a-b 

A 1017 a-d 








AP 14 

Floppy-Controller für alle Anwen- 
dungsfälle. 10 Laufwerke können 
gleichzeitig angeschlossen werden. 
4 x 8” DSDD, A x 5V4” DSDD und 


zwei Apple-Standardlaufwerke. 
Maximal ca. 10MByte im Direktzu- 
griff. 


Bestell-Nr.: A 1014 





„ed“ jetzt 512 K-RAM 


AP 20 

INTEMEX mit 68 000 CPU und 128 
k-RAM. Diese Karte macht aus Ihrem 
Rechner mit „Applebus” einen ech- 
ten 16 bit-Rechner. Eine Zusatzkarte 
(AP 26) ermöglicht einen Arbeitsspei- 
cher bis zu einem MByte und an Soft- 
ware gibt es einiges. Z.B. stehen drei 
Betriebssysteme und die wichtigsten 
Hochsprachen zur Verfügung. 
Bestell-Nr. A 1020 







SU SRERRÄRHREN en SS ARE: 
REES $ x 


ERRICHTET 
SEHRSERSESEÄUTURUENNRUH RE RAD S 






— 


AP 33 

RAMDISK der neuen Generation. 
Für besonders speicherintensive 
Arbeiten ist der Ausbau in Stufen 
von 64 kByte bis 1MByte möglich. 
Bestell-Nr. A 1033 





Re N or ss 5 ERS EEEETTER 
S SEÄERIERHTTEEÜHRÜHENEN ER ER ni RR ® 
SERRS SEEEEERTATÄTNTUHTNSRN SEE so = u SER x 
= nn So SERIEN N 
N 
RC TTRSIEN RR SE oe BR 
SERRHHÄRDÄRNE GSTEN x = S N x 
SE 3 RN ER 5 
= NN 8 
R R 


R f} anne} 





AP19 


12-Kanal AD-DA-Wandler mit 12 bit 
Auflösung und 25 u sec Wandlungs- 
zeit. Eingangsspannung +10 V. Ein 
schneller Wandler für extrem 
schnelle Anwendungen. 
Bestell-Nr.: A 1019 


EIODREIEOTNR 


NEU! 8 MHz Takt 





AP22 

INTEMEX mit Z 80 B-CPU und 64 
k-RAM. Wenn Sie einmal diese Karte 
in Aktion gesehen haben, werden Sie 
auch feststellen: „Geschwindigkeit 
ist keine Hexerei, man braucht nur 
die AP 22”. Mit dieser Karte wird Ihr 
APPLE II zum z.Z. schnellsten CP/M- 
Computer, und in Verbindung mit 
dem SPACE 84 erhalten Sie Compu- 
terleistung, die wirklich einmalig ist. 
Wir vermitteln gerne eine Vorführung. 
Bestell-Nr. A 1022 


Das Interface-Buch von IBS, ein Buch für Alle, die Ihren APPLE II oder Kompatiblen 
optimalnutzen wollen. Detaillierte Schaltpläne, Bauteilelisten und Benutzungshinweise 


N zu allen IBS-Interfaces finden Sie jetzt in einem Buch vereint. Ausführliche Abhandlun- 

\ we” gen über Spezialschaltungen, über Anwendungsmöglichkeiten, über neue Software- 

NND welten aber auch über die Grenzen des APPLE II-Systems bestimmen den Wert dieses 
Buches. 


Für nur DM 8,00 erhalten Sie dieses Buch ab sofort bei Ihrem Computerfachhändler 
oder für DM 8,00 + DM 2,00 Versandkosten bei IBS COMPUTERVERTRIEB. 








135 
cCOMmrULETTLEecHI 











Olper Straße 10 - 4800 Bielefeld 14 - Tel.: 0521/444032 - W. Germany 
1011 Rose Marie Lane 16 - Stockton CA 95207 - Tel. 209/473 —- 7473 USA 








Wenn Sie dieses Heft in Händen halten, 
verbringe ich gerade meinen Urlaub in 
südlichen Gefilden. Wie das so üblich ist, 
nehme ich mir auch dieses Mal wieder 
amerikanische Fachliteratur mit, um mich 
auf dem laufenden zu halten... 


..beispielsweise über Pascal, denn ich er- 
warte natürlich, daß viele an unserem Pas- 
cal-Wettbewerb teilnehmen werden, der in 
diesem Heft ausgeschrieben wird. Beim 
letzten Peeker-Wettbewerb über Primzah- 
len hatten einige Schulklassen teilgenom- 
men, und ich würde mich freuen, wenn 
auch bei dem neuerlichen Preisausschrei- 
ben wieder einige Klassen ihren „Punkte- 
saldo“ einsenden würden. Leider mußte 
ich die Kürze des Pascal-Quellcodes in 
den „Punktesaldo“ des Wettbewerbs mit 
einbeziehen, um „unerlaubte Tricks” zu- 
mindest einzuschränken. Dies wird zur 
Folge haben, daß völlig „undidaktisch“ 
aussehende Listings erstellt werden, die 
nur entfernt an die ästhetische, übersichtli- 
che Strukturierung eines typischen Pas- 
cal-Quelltextes erinnern werden. Informa- 
tik-Lehrer mögen hier einmal ein Auge 
zudrücken. 


editorial 


Auch wenn für die eigentlichen Fachbei- 
träge des Peeker das von der Mehrzahl 
der Leser gewünschte hohe Niveau beibe- 
halten werden soll, wird mit diesem Heft 
eine Serie von meist 16seitigen, in sich 
geschlossenen Sonderartikeln beginnen, 
die auf Anfänger abgestimmt sind. Neben 
dem ersten Sonderteil „6502 leicht ge- 
macht“ in diesem Heft sind weitere Über- 
sichtsartikel über 68000, Z80, MBASIC, 
Pascal und andere Themen in Arbeit. Bei 
den großen Spezialserien (Mac-BASIC, 
ProDOS, Graf-quattro) ist eine Aufsplit- 
tung auf mehrere Hefte aus Platzgründen 
unvermeidlich. Ich glaube jedoch, daß ge- 
rade dem Anfänger ein vollständiger Son- 
derteil in der Form eines Mini-Buches 
mehr bringt als eine auf mehrere Hefte 
verteilte Serie. Trotzdem würde mich ger- 
ne Ihre Meinung hierzu interessieren. 


LO sa 


Ulrich Stiehl 


Impressum 


Peeker 

Magazin für Apple-Computer 
2. Jahrgang 1985 

ISSN 0176-9200 

© für den gesamten Inhalt 
einschließlich der Programme 
Dr. Alfred Hüthig Verlag, 
Heidelberg 1985 


Verleger und Herausgeber: 
Dipl.-Kfm. Holger Hüthig 
Geschäftsführung Zeitschriften: 
Heinz Melcher 


Chefredakteur: 

Ulrich Stiehl (us) Tel. (06221) 489352 
(Bitte nur in redaktionellen Angelegenheiten 
anrufen) 


Anzeigenleitung: 

Jürgen Maurer, Tel. (06221) 489218 
z. Zt. gilt Anzeigenpreisliste Nr. 3 
Vertriebsleitung: 

Ruth Biller, Tel. (06221) 489280 
Produktionsleitung: Gunter Sokollek 
Gestaltung: Rainer Schmitt 

Titelbild: Creative Computer 

Service, Mannheim 











5 IMPRESSUM 


HOBBY 


Pyramid Pitty 
5 Ein Reaktionsspiel 
von Michael Matzat 


TECHNIK 


Die AP33-Megawrap-RAM-Karte 


8 Mit einem RAM-Disk-Driver für ProDOS 
von Ulrich Stiehl 


Formatter 
20 Ein universelles Formatierungsprogramm 
von Arne Schäpers 


Bit Editor 

29 Zeichensatz-EPROMs für die Videx-Karte 
von Joachim Klamt 
SONDERTEIL 

33 6502 leicht gemacht 
von Ulrich Stiehl 
CP/M 

57 Wordstar mit allen FX-80-Schriftarten 
von Dipl.-Ing. H. A. Rohrbacher 
PASCAL 

62 Pascal-Preisausschreiben 


KURZBERICHTE 
No Orchids for Miss Lisa 


67 Lisa und die Folgen 
von Ulrich Stiehl 


Verlag: Erscheinungsweise: 12 Hefte jährlich, 
Dr. Alfred Hüthig Verlag GmbH 
Im Weiher 10, Postfach 102869 
6900 Heidelberg 

Telefon (06221) 489-0 

Telex 4-61727 hued d. 


Jahresabonnement DM 72,-, einschließlich MwSt, 
im Inland portofrei. Einzelheft DM 6,50 

Vertrieb Handel: 

MZV - Moderner Zeitschriften Vertrieb GmbH 
Breslauer Str. 5, Postfach 1123, 

8057 Eching b. München, 

Tel. 089/3191067, Telex 0522 656 


EEKER 


MAGAZIN FÜR APPLE-COMPUTER 





Erscheinungstag jeweils 1 Woche vor Monatsbeginn. 






ASSEMBLER 
69 Hex-Dez-Konvertierung für 32-Bit-Zahlen 


von Harald Grumser 


Vorlesestunde 
71 Apple und SAM - ein hilfreiches Gespann 
von Dr. Jürgen B. Kehrel 


73 LESERBRIEFE 


TESTBERICHTE 


MEGACORE 


76 Festplatte mit 10 Megabytes 
getestet von Harald Grumser 


77 Star Delta-10 und Grafstar-Interface 


getestet von Karl-Walter Bott 


78 INSERENTENVERZEICHNIS 


SC:80042749 HI: aaa42749 WATER: 06093 L:7 


ENDETE 


Zahlungen: an den Dr. Alfred Hüthig Verlag 
GmbH, D-6900 Heidelberg 1: Postscheck- 
konten: BRD: Karlsruhe 485 45-753; 
Österreich: Wien 7555888; Schweiz: Basel 
40-24417; Niederlande: Den Haag 145728; 


Bankkonten: Landeszentralbank Heidel- 
berg 67 207 341; BLZ 67200000; Deutsche 
Bank Heidelberg 02165041; BLZ 

672 70003; Bezirkssparkasse Heidelberg 
20451, BLZ 67250020. 


‚ Italien: Mailand 47718; Belgien: 


Brüssel 723026; Dänemark: Kopenhagen 
34969; Norwegen: Oslo 994 24; 
Schweden: Stockholm 5477 76-5 


Herstellung: Heidelberger Verlagsanstalt 
Printed in Germany 


Pyramiıd Pitty 


Ein Reaktionsspiel 





von Michael Matzat 


6 Peeker 7/85 





Vorbemerkung 

Für Liebhaber von Computerspielen brin- 
gen wir erstmals im Peeker ein umfangrei- 
ches und, wie wir meinen, erstaunlich pro- 
fessionelles Hires-Spiel. Erstaunlich des- 
halb, weil der Autor, Michael Matzat, ob- 
wohl er erst 19 Jahre alt ist, ein lupenrei- 
nes Assemblerprogramm geschaffen hat, 
das hinsichtlich Schnelligkeit, Vielfalt und 
Komfort den meist oberhalb der 100- 
Mark-Grenze angesiedelten, kommerziel- 
len Apple-Spielen kaum nachsteht. We- 
gen des Umfangs — mehrere tausend Zei- 
len Quellcode — ist es uns leider nicht 
möglich, das Programm abzudrucken. Es 
befindet sich als Objekt- und Quellcode 
auf der Peeker-Sammeldisk . us 





Peeker 7/85 


7.94 hobby 44 


Spielidee 

Peter Pause, oder auch einfach nur Pitt 
genannt, kommt als einfacher Tourist nach 
Ägypten, wo er, wie soll es auch anders 
sein, natürlich eine der Pyramiden be- 
sucht, um auf ihr ein kleines Picknick ein- 
zunehmen. Als er wieder am Fuße der 
Pyramide steht, bemerkt er, daß er seinen 
Picknickkorb auf der Pyramide verloren 
hat. 

Seine Aufgabe ist es nun, die verlorenen 
Picknicksachen wieder einzusammeln. Er- 
schwerend kommt hinzu, daß die Pyrami- 
de schon sehr brüchig ist, man leicht stol- 
pern und von der Pyramide stürzen kann. 
Doch das ist noch nicht alles! Aus einfa- 
chen Rissen in den Stufen der Pyramide 
können, ohne daß es Pitt bemerkt, tiefe 
Spalten werden. 


Spielablauf 

Das gesamte Spielfeld enthält eine kleine 
und eine große Pyramide und besteht aus 
22 Hires-Teilbildern. Um von einem Teil- 
bild in ein anderes zu gelangen, braucht 
man nur durch einen der 4 Bildschirmrän- 
der zu laufen. Sollte dies nicht möglich 
sein, so folgt in dieser Richtung kein wei- 
teres Teilbild mehr. 

Der Computer spielt mit mehreren Geg- 
nern gegen Sie. Zunächst jeweils nur mit 
einem, aber in den höheren Leveln kön- 
nen auch bis zu drei Gegner gegen Sie 
antreten. 

Ihr erster Gegner ist der Pharao. Er ist 
eigentlich ungefährlich, doch trotzdem 
sollte man es vermeiden, mit ihm auf der 
gleichen oder der nächst höheren Pyrami- 
denstufe zu stehen. 

Der Falke des Pharaos ist Ihr nächster 
Gegner. Achten Sie darauf, daß er Sie 
nicht an den Beinen berührt, da Sie sonst 
stolpern könnten. 

Die Wolke versucht Sie einzuhüllen und 
Ihnen somit den Sichtkontakt mit dem Bo- 
den zu nehmen. 

Am meisten macht Ihnen allerdings die 
Hitze zu schaffen. Durch sie verdunstet Ihr 
Wasser, und je höher der Level, desto 
schneller verdunstet es. Ihren Wasserver- 
lust müssen Sie unbedingt auszugleichen 
versuchen. In den Löchern, die in fast 
jedem Teilbild enthalten sind, kann sich 
Wasser befinden. Oder auch nicht! Denn 
je höher der Level, desto seltener findet 
man gefüllte Wasserlöcher. Wenn ein 
Loch kein Wasser enthält, dann kann es 
sein, daß .... Aber dies soll hier nicht verra- 
ten werden. 


Bewertung 
Kommen wir nun zur Bewertung. Für je- 
den wiedergefundenen Gegenstand gibt 


es zwischen 1 und 1000 Punkte. Darüber 
hinaus erhalten Sie pro Liter gefundenen 
Wassers je einen Punkt und am Ende ei- 
nes Levels bekommen Sie pro Liter ver- 
bliebenen Wassers jeweils 100 Punkte. 
Diese Angaben sind natürlich wie immer 
ohne Gewähr! 


Bedienung 

Das Spiel wird mit 

RUN PYRAMID.PITTY 

gestartet. In diesem vorgeschalteten Start- 
programm können Sie dem eigentlichen 
Programm mitteilen, ob Sie über alle Cur- 
sor-Tasten verfügen oder nicht. Denn ge- 
spielt wird über Tastatur, wobei auf dem 
Apple Ile und Ilc die Cursor-Tasten und 
auf dem Apple Il Plus neben den Links- 
und Rechtspfeil-Tasten die Buchstaben A 
und Z die Hoch- und Tiefpfeiltasten erset- 
zen. Mit ESC kann das Spiel gestoppt und 
mit der Leertaste wieder gestartet werden. 
Wenn Sie die mitlaufende Melodie stört, 
so können Sie den Lautsprecher mit Ctrl-S 
abschalten, da Ctrl-S den Ton auf den 
Kassettenausgang legt. 


Technisches 

Das Spiel ist komplett in Assembler ge- 
schrieben und kann trotz seines geraumen 
Umfangs (ca. 27K) noch erweitert werden, 
beispielsweise mit einer Tabelle der 10 
besten Spieler des Tages usw. Aus Grün- 
den der Geschwindigkeit, die ja bei Spie- 
len sehr wichtig ist, war es leider nicht 
möglich, die normalen Möglichkeiten des 
Apples zur Darstellung von Grafik, wie 
etwa die DRAW-, XDRAW- und HPLOT- 
Funktionen zu benutzen. Dies war auch 
der Grund, warum ich auf die in professio- 
nellen Spielen üblichen Blockshapes — 
auch Sprites, Raster- oder Bitmustergrafi- 
ken genannt -—, deren großer Vorteil ihre 
schnelle Darstellungsgeschwindigkeit ist, 
zurückgegriffen habe. Das Programm ent- 
hält daher diverse Routinen zum Arbeiten 
mit Blockshapes, die man leicht zu einem 
ganzen Grafiksystem ausbauen könnte. 
Die daraus resultierende Verarbeitungsge- 
schwindigkeit hat es mir ermöglicht, die 
oben erwähnte Begleitmelodie einzubau- 
en, ohne daß sich dadurch die in solchen 
Fällen üblichen, ruckartigen Bewegungen 
einstellen. 


Probieren Sie einmal aus, welchen Spiel- 
stand Sie bei Pyramid Pitty erreichen! Bis- 
her konnte ich, obwohl ich alle Kniffe und 
Tricks in diesem Spiel kenne, „nur“ bis 
zum Level 7 vorzudringen. 


‘ 








Die AP33-Megawarp- 
RAM-Karte 


Mit einem RAM-Disk-Driver für ProDOS 





von Ulrich Stiehl 





Die neue RAM-Karte AP33 der Firma IBS 
in Bielefeld — auch als Megawarp bezeich- 
net — kann wahlweise mit 64-KBit- oder 
256-KBit-RAM-Bausteinen bestückt wer- 
den. Am besten geht man gleich „in die 
vollen“ und bestellt die Karte mit den 
neueren Chips, denn man kann 4 ver- 
schiedene Bestückungsstufen wählen, so 
daß der Geldbeutel nicht allzu stark strapa- 
ziert wird: 





Peeker 7/85 





256K (ca. DM 1425,-) 

512K (ca. DM 2160, -) 

768K (ca. DM ??7?) 

1024K (ca. DM 3625,-) 

Ein einzelner 256-KBit-Chip oder IC (= 
Integrated Circuit) hat übrigens eine Spei- 
cherkapazität von 32K. Wenn von einem 
xyz-KBit-Chip oder xyz-K-IC die Rede ist, 
so teilen Sie xyz durch 8 und erhalten 
damit die Speicherkapazität in Kilobytes, 
also 

256KBit : 8 = 32K, z.B. AP33 

64KBit:8 = 8K, z.B. Ile 

16KBit:8 = 2K, z.B. Il+ 

Die voll bestückte AP33 hat damit 32 
256KBit-RAM-Bausteine (32 * 32 = 
1024K) sowie weitere CMOS-RAMSs für 
den Slot-RAM-Bereich (s.u.). 





Peeker 7/85 


1. AP33-Softswitches 


Die mir zu Testzwecken zur Verfügung 
gestellte Karte (s. Bild) war zur Hälfte 
bestückt (512K). Im Gegensatz zu den 
früheren Adressierungsverfahren (Ss. 
Peeker, Heft 1/1985, S. 18) hat man bei 
der AP33 neue Wege beschritten. Früher 
wurden größere RAM-Karten meistens in 
einen Adreßbereich der „unteren“ 64K 
„gemappt“, z.B. in den Bereich $DOO00- 
$FFFF. Dieses Konzept ließ man nunmehr 
fallen. Statt dessen gibt es jetzt ein 20-Bit- 
Adreßregister (20 Bits, weil 2 hoch 20 = 
1.048.576 = 1M = maximale Speicherka- 
pazität), das eine lineare Adressierung von 
$000000 bis $OFFFFF (= O bis 1.048.576) 
erlaubt. Die 20 Bits sind auf 2 volle 8-Bit- 
Register sowie die eine Hälfte (= 4 Bits) 
eines weiteren 8-Bit-Registers verteilt, 
dessen andere Hälfte der Paritätsprüfung 
dient. Daneben gibt es noch ein 8-Bit- 
Datenregister, das jeweils das zu übertra- 
gende Byte aufnimmt. 


Poke-Beispiel: Nehmen wir an, wir wollen 
das Byte $CC in die Speicherstelle 
$00AABB (HHMMLL) der AP33 poken. 
Hierzu poken wir zunächst $00 in das 
High-Byte, $AA in das Middie-Byte und 
$BB in das Low-Byte des 20-Bit-Adreßre- 
gister. Nunmehr poken wir $CC in das 8- 
Bit-Datenregister, womit $CC in $00AABB 
übertragen wird. 


Peek-Beispiel: Nehmen wir umgekehrt 
an, wir wollen später wieder das Byte $CC 
aus der Speicherstelle $00AABB der 
AP33 peeken. Hierzu poken wir zunächst 
wieder die Adresse in das 20-Bit-Adreßre- 
gister und peeken dann den Wert $CC aus 
dem 8-Bit-Datenregister. 


Paritätsprüfung: In Wirklichkeit ist es et- 
was komplizierter. Erstens muß man zwi- 
schen der alten 64K-Chip- und der neuen 
256K-Chip-Karte unterscheiden. Zweitens 
sollte man von der bei der AP33 imple- 
mentierten Möglichkeit Gebrauch machen, 
die Datenbytes auf Parität zu überprüfen. 
Es wird das Verfahren der „Even parity“ 
(= geraden Parität) verwendet. Gerade 
Parität besagt bei einem 8-Bit-Byte, z.B. 
%10110110, folgendes: Man zählt die 
Einserbits zusammen, hier 5 Einserbits, 
und prüft, ob sich eine gerade oder eine 
ungerade Zahl ergibt. Da 5 eine ungerade 
Zahl ist, wird das Paritätsbit auf 1 gesetzt. 
Bei % 11110000 würde sich die Summe 4 
ergeben, also eine gerade Zahl, so daß 
hier das Paritätsbit auf O gesetzt wird. So- 
mit folgt, daß bei gerader Parität die Sum- 
me der Einserbits des 8-Bit-Bytes und des 
Paritätsbits zusammen immer eine gerade 
Zahl ergeben. Wenn man also bei der AP 


technik 4.4 


20 unter Verwendung der Paritätsprüfung 
beispielsweise das Byte % 11000010 von 
der Karte liest und das Paritätsbit ist nicht 
auf 1 gesetzt, so liegt ein Übertragungs- 
fehler vor. 


2. AP33 und ProDOS 


Die AP33 ist wahrscheinlich die erste gro- 
Be RAM-Karte, für die ein RAM-Disk- 
Driver für ProDOS entwickelt wurde. Da- 
neben liegen die bereits bekannten RAM- 
Disk-Driver für DOS 3.3, CP/M und Pascal 
1.1 vor, auf die wir aus Platzgründen hier 
nicht näher eingehen werden. Der Pro- 
DOS-RAM-Disk-Driver wurde im April die- 
ses Jahres von Volker Baumgarte entwik- 
kelt und mir freundlicherweise von der Fir- 
ma IBS als Quellcode zur Prüfung zuge- 
sandt. Leider springen einem bei Fremd- 
programmen die Fehler leichter ins Auge 
als bei eigenen Programmen. Tatsächlich 
entdeckte ich prompt einen „Schußlig- 
keitsfehler“, der zur Folge hatte, daß die 
Blocks 3 und 4 des Volume-Directory nicht 
mit den korrekten Vorwärts- und Rück- 
wärtszeigern versehen wurden. Dies ist 
inzwischen behoben. Sollte ein Leser ei- 
nen der ersten Prototypen der Karte zufäl- 
lig noch mit dem alten ProDOS-Driver er- 
halten haben, so möge er bei der AP33 
bitte folgenden Test durchführen: 

10 FORX = 1 T051: 

20 PRINT CHR$(4) “SAVE XXX "X: NEXT 
Sollte hierbei ein I/O-Fehler auftreten, so 
fordern Sie bitte die neue Driver-Diskette 
an. 

Der IBS-ProDOS-Driver (namens INSTAL 
oder MEGAWARP) läuft unter allen Pro- 
DOS-Versionen, was keineswegs eine 
Selbstverständlichkeit ist. Der berüchtigte 
Test für die Überprüfung der Blockober- 
grenze (maximal 280 Blocks) braucht übri- 
gens nicht gepatcht zu werden, weil sich 
dieser Test am Anfang des Disk-Il-Drivers 
befindet, der bei einem RAM-Disk-Driver 
gar nicht zum Tragen kommt. Um den 
MEGAWARFP-Driver zu installieren, bootet 
man zunächst eine beliebige ProDOS- 
Version von der ProDOS-Systemdiskette 
und startet dann mit BRUN INSTAL den 
Driver von der IBS-Diskette. Das MEGA- 
WARP-Programm 

(1) fragt nach der Nummer n des Slots, in 
dem sich die AP33 befindet, 

(2) ermittelt die Bestückung und ob 64- 
KBit- oder 256-KBit-Chips vorliegen, 

(3) löscht die gesamte RAM-Karte (LDA 
#0 STA $000000 bis $OHMMLL), 

(4) installiert den Driver ab $Cs00 und 
$C800 und 

(5) legt das Volume-Directory an. 





3. AP33 und Accelerator Ile 


Wenn die AP33 beispielsweise im Slot 4 
steckt - jeder Slot außer Slot O wäre zuläs- 
sig — so beginnt der ProDOS-RAM-Disk- 
Driver bei $C400 mit einem JMP nach 


8 Bit Daten 


Cön3 





GAWARP.NEU keine Geschwindigkeits- 
vorteile. Ferner sei darauf hingewiesen, 
daß unsere Driver nur für die 256-KBit-ICs 
gedacht sind und daß auf den Initialisie- 
rungsteil verzichtet wurde, der bereits in 
INSTAL (= „MEGAWARP.ALT“) enthal- 


Clear ey 


1 
I A19 A17 
A18 | A16 


a 


n = Slot-Nr. +8 


$C800, denn neben dem eigentlichen 
RAM der AP33 verfügt man bei dieser 
Karte über 256 Bytes Slot-RAM ($Cs00- 
$CsFF) sowie über I/O-RAM im Bereich 
$C800-$CFFE, der mit BIT $CFFF lese/ 
schreibfähig gemacht wird. 


Die Accelerator Ile, die im Peeker, Heft 1/ 
1984, besprochen wurde, taktet jedoch 
von 3,5 auf 1 MHz herunter, wenn Inter- 
face-Adressen ($C000-$CFFF) angespro- 
chen werden. Deshalb sollte man bei Ver- 
wendung der Accelerator Ile in Verbin- 
dung mit der AP33 den Driver in einem 
Nicht-Interface-Bereich ansiedeln. 


Unser Programm „MEGAWARP.NEU“ in 
den Versionen MEGAWARP.REL (reloka- 
tiv) und MEGAWARP.99YOO (nicht reloka- 
tiv) dient diesem Zweck und führt zu einer 
Verdopplung der Datenübertragungsrate 
(„2 MHz“) gegenüber dem ursprüngli- 
chen IBS-Driver („MEGAWARP.ALT). 
Die „2 MHz“ erklären sich dadurch, daß 
etwa die Hälfte der Driver-Befehle im 
schnellen Accelerator-RAM mit ca. 3,32 
MHz ausgeführt werden, während beim 
eigentlichen AP33-Zugriff auf 1 MHz her- 
untergetaktet wird. Man beachte, daß un- 
sere Driver nur dann sinnvoll sind, wenn 
man neben der AP33 die Accelerator Ile 
besitzt, denn ohne letztere Karte hat ME- 


10 


ten ist. Man starte also erst MEGAWARP. 
ALT (mit BRUN INSTAL) und dann MEGA- 
WARP.NEU (mit BRUN MEGAWARP.REL 
oder BRUN MEGAWARP.9900). Beide 
Module befinden sich auf der Peeker- 
Sammeldisk, doch ist aus Platzgründen 
nur MEGAWARP.9900 gelistet. Wenn die 
AP33 nicht im Slot 4 steckt, muß man den 
Quellcode entsprechend abändern (La- 
bels SLOT4 und SLOTC4) 


4. Geschwindigkeitstests 


Im einzelnen wurden folgende Geschwin- 
digkeitstests durchgeführt: 

a) MEGAWARP.ALT mit/ohne Accelerator 
b) MEGAWARP.NEU mit/ohne Accele- 
rator 

c) Apple-Ile-64K-Karte mit ProDOS-RAM- 
Disk-Driver mit/ohne Accelerator 

Bei der 64K-Karte hängt im Gegensatz zur 
AP33 die Datenübertragungsrate davon 
ab, welche Bereiche der 64K-Karte beim 
RAM-Disk-Zugriff tangiert werden. 
Näheres über die Testergebnisse kann 
man den Listings entnehmen. 


„High-Level“-Test 
Dieser Test sollte den BASIC.SYSTEM- 
RAM-Disk-Zugriff mit BSAVE und BLOAD 


messen. Wenn man von den Seek-Befeh- 
len sowie den Directory- und Index-Block- 
Zugriffen absieht, wurde als Grobwert 1M 
übertragen. MEGAWARP.NEU ist hier ge- 
nauso schnell wie MEGAWARP.ALT, 
wenn keine Accelerator eingesetzt wird. 


LL Schreiben 





Unter Verwendung der Accelerator ist die 
Datenübertragungsrate jedoch beachtlich 
(20.7K/s bei MEGAWARP.ALT ohne AC- 
CEL gegenüber 37.9K/s bei MEGAWARRP. 
NEU mit ACCEL). 
Wie ich dem alten IBS-MEGAWARP- 
Driver entnehmen konnte, wurde der 
Seek- bzw. Status-Befehl durch „LDA 
COMMAND LSR BCC WRITE“ wie ein 
Write-Befehl behandelt. Abgesehen da- 
von, daß dies „ins Auge gehen” kann, 
wird unnötige Zeit vertrödelt. Der nachfol- 
gende Spezialtest mag dies verdeutlichen: 
10N = 100 
20 PRINT CHR$(4) 
“RENAME/MEGAWARP,/M" 
30 PRINT CHR$(4) “CREATE/M/D,TDIR“ 
40 PRINT CHR$(4) “PREFIX/M/D“ 
5SOFORX=1TON: 
60 PRINT CHR$(4) “SAVE X"X: NEXT 
/OFORX=1TON 
80 PRINT CHR$(4) “DELETE X“X: NEXT 
Ohne Accelerator benötigt MEGAWARP. 
ALT hierfür 67,5s im Gegensatz zu ME- 
GAWARP.NEU mit nur 65s. Die Differenz 
von 2,5s ist auf den Seek- bzw. Status- 
Befehl zurückzuführen. 


„Low-Level“-Test 
Dieser Test sollte den MLI-RAM-Disk-Zu- 
griff mit den Blockread- und Blockwrite- 


Peeker 7/85 








& Ablage 





Bearbeiten Große INJIET) 









L. 








4 


Ce E - 


dr i 





Die Qualität kommerzieller Arcade- 
spiele läßt sich mit APPLESOFT 
BASIC alleine nicht erreichen. Jef- 
frey Stanton führt in die Eigenarten 
der hochauflösenden Apple-Grafik 
ein und präsentiert schließlich eine 
Reihe extrem schneller Assembler- 
Routinen, mit denen Sie viele Effek- 
te bekannter Spiele selbst program- 
mieren können. Gute BASIC- 
Kenntnisse werden vorausgesetzt, 


| 


a 


aundahnnk 


Bismarckstr. 67, D- 1000 Berlin 12 


—H 


/ 


nz 


Pandabooks! 





Apple II 
Raster Grafik 
Jeffrey Stanton 


u 





7 


(030) 342 88 00 


Die beiden Autoren haben zusam- 
men mehr als 50 Jahre Amateur- 
funk-Erfahrung und präsentieren 
hier mehr als 20 BASIC- 
Programme, die jeden Funkamateur 
interessieren: TH-KENNER, 
DAMMERUNGSLINIE ‚DX- 
RECHNER ‚DOPPEL-FAHN- 
DER, NACHWEISSCHREIBER, 
ALLZWECK-CONTEST-LOG- 
GER, FIELD-DAY-LOGGER, 
WETTBEWERB-LOGGER 
u.v.a.m. Das Buch enthält die kom- 
De Listings für Apple II und 
64. 


3-89058-027-0 ca.256S. DM 48,-- 
komplett mit Disk DM 89,-- 


mm m, 


Zeichensatz Stil 






GILLEILTAGET 


Te 
2m 


a nad 


Gratis! 
‚AppleQuick 


Das Apple Il-Brevier 
fur haufig gebrauchte 
Adressen und Befehle! 
64 Seiten uber Apple- 
soft, D0S, Pascal, CP/M. 
Gleich anfordern! 





| BASIC-Pro- N 
ı gramme fur 


Funkamateure 
Overbeck 


7 


nn” 


eine Einführung 










Handbuch 


Worth/Lechner 


in Assembler- 
Programmierung wird gegeben. 


3-89058-006-8 299 Seiten DM 49,-- 
komplett mit Disk DM 89,-- 


m ——m nm, 


Apple ProDOS | 


| 
ı 


Don Worth und Peter Lechner sind 
die Autoren von ‘“‘Beneath Apple 
DOS‘“‘, der Bibel aller DOS 3.3- 
Benutzer. In ihrem neuen Buch ha- 
ben sie sich ProDOS vorgenommen 
und mit der ihnen eigenen Gründ- 
lichkeit zerlegt. Ausführliche Be- 
schreibung der Arbeitsweise, der 
Dateitypen, des “MLI‘“ und des 
“BASIC SYSTEM“. Das Standard- 
werk für jeden ProDOS-Anwender. 


3-89058-036-X ca. 250S. DM 46,-- 


























Das Assembler-Lehrbuch für 
BASIC-Kenner. 
Roger Wagner, der Autor vieler be- 
kannter Software-Pakete, schrieb 
eine monatliche Kolumne über 
Assembler-Programmierung in der 
Apple-Zeitschrift SOFTALK. 
Der vorliegende Band faßt diese 
Reihe, korrigiert und erweitert, zu- 
sammen: Eine stufenweise Einfüh- 
rung in die Befehle und Strukturen 
der 6502-Assemblersprache, mit vie- 
len Beispielen von der einfachen 
Tongenerierung bis zum Disketten- 
zugriff. 
3-89058-003-3 277 Seiten DM 48,-- 
komplett mit Disk DM 89,-- 





| Apple II 








Assembler- ’ 
Programmierung)! 
Roger Wagner 


| 
| 









Peeker 7/85 


Visible Computer 
Charles Anderson 












DEE LEER 


Ein Simulationsprogramm, das Sie 
in das Innere des 6502 Mikroprozes- 
sors führt. Sie sehen auf dem Bild- 
schirm, wie die einzelnen Instruktio- 
nen in Zeitlupe ausgeführt werden, 
wie sich die Register und die Flags 
verändern. Ein unverzichtbares 
Hilfsmittel beim Erlernen der 
Assembler-Programmierung, da- 
nach ein wertvolles Werkzeug beim 
Testen Ihrer eigenen Programme. 
Komplett mit einem 6502 Editor/- 
Assembler, deutschem Handbuch 
(150 Seiten) und über 30 Beispiel- 
programmen. 


3-89058-019-X DM 129,-- 


| 

| Apple Il | 
Schaltplane || 
Winston D Gavler | 


IE 


N u 


Endlich anspruchsvolle Apple- 
Grafik für BASIC-Programmierer. 


Mikrocomputer Grafik 


Programme, die 
nen Konzepte illustrieren. 


lation von Grafiken 


mationstechnik 


3-89058-000-9 292 Seiten DM 49,-- 
komplett mit Disk DM 89,-- 


Apple 
Pascal Grafik 


Tom Swan 


beschreibt ‘Hidden Line‘‘- und 
“Hidden Surface‘‘-Techniken, 
Skalierung, Rotation und Trans- 


bietet eine Einführung in die Ani- 


| 


\ 





Eine detaillierte Beschreibung der 
Apple II und Apple IIplus Schaltun- 
gen. Wenn Sie Ihren Apple selbst re- 
parieren, Interface-Karten oder 
Schaltungserweiterungen entwerfen 
oder einfach nur besser über das In- 
nenleben Ihres Apple Bescheid wis- 
sen wollen - dieses Buch bietet Ihnen 


eine Fülle an Informationen, Schalt- 


pläne und Zeitdiagramme, Theorie 
und praktische Tips. 


3-89058-012-2 215S.A4 DM64,- 





enthält fast 80 lauffertige BASIC- 
die beschriebe- 


Mikrocomputer | 
Grafik 
Roy E. Myers 





22 Pascal-Programme, mit denen 
Sie die Grafik-Möglichkeiten Ihres 
Apple voll ausschöpfen: 
“‘Designer‘‘ ermöglicht es Ihnen, ei- 
gene Zeichensätze zu entwerfen. 
‘‘Gredit‘‘ unterstützt Sie beim Ent- 
werfen komplexer Bildschirm- 
Grafiken 

““Printfoto‘‘ bringt Ihre Entwürfe 
aufs Papier. 

Darüberhinaus bietet das Buch eine 
Fülle fertiger Prozeduren, die Sie 
zeitsparend in Ihre eigenen Pro- 
gramme einbauen können 


3-89058-009-2 280 Seiten DM 49,-- 
komplett mit Diskette DM 89,-- 


In allen Buchhandlungen und Computershops oder direkt von: 
Pandabooks, Bismarckstr. 67, 1000 Berlin 12, (030) 342 88 00 


EEE EM Bestellccoupon BRBRBBBEBEBEBEEBEBBEEE 


= Name: 
= Anschrift: 






O V-Scheck liegt bei 


(spesenfreie Lieferung) 


O per Nachnahme 
(zzgl. Versandspesen) 








£ 
[@] 
5 
X 
N 
= 
z 
Fi 
c 
o 
ie 
r- 
I 
Yv 
3 
£ 
J 
10] 
* 
N 
& 
) 
e) 
2 
“ 
® 
> 
u 
u 
D 
< 
[e} 
J 
:O 
OÖ 
e 
< 
ou 
£ 
£ 
® 
. 
u 
:O 
232 


SH 


BEER 





11 








Routinen messen. Es wurde wie beim 
„High-Level“-Test iM übertragen (s. 
SPEEDTEST). Während ohne Accelerator 
der Geschwindigkeitsunterschied zwi- 
schen MEGAWARP.ALT und MEGA- 
WARP.NEU praktisch gleich null ist, steigt 
mit der Accelerator-Karte die Übertra- 
gungsrate überproportional an. Beim 
Blockread wurden „nur“ 81.9K/s übertra- 
gen, während beim Blockwrite satte 128K/ 
s erzielt werden konnten. Damit dürfte die 
AP33 in Verbindung mit der Accelerator lle 
schätzungsweise zehnmal schneller als 
die Profile-Festplatte sein, bei der eine 
Accelerator praktisch wirkungslos ist. (Es 
wäre nett, wenn ein Peeker-Leser, der 
eine Profile besitzt, uns seine Meßergeb- 
nisse anhand des SPEEDTEST mitteilte.) 


5. Fazit 


Die AP33 ist eine RAM-Karte der neuen 
Generation. Mit 1024K hat man die dop- 
pelte Kapazität des „Fat Mac“ (= 512K- 
Macintosh), wobei die Mac-512K-Spei- 
chererweiterung (Listenpreis!) etwa soviel 
wie eine 1024K-AP33 kostet. Nimmt man 
noch die Accelerator Ile hinzu, so verfügt 
man über traumhafte Übertragungsraten. 
Sollte es zufällig einen 68000-Program- 
mierer geben, der einen 512K-Mac be- 
‚sitzt, so wird er gebeten, uns die Ergebnis- 
se des entsprechenden Tests mitzuteilen. 


RAM-Disk-Driver 
für ProDOS 


Allgemeine Richtlinien 


Nachfolgend soll unabhängig von der 
AP33 und der 64K-Karte, für die bereits 
RAM-Disk-Driver vorliegen, kurz charak- 
terisiert werden, was im einzelnen beach- 
tet werden muß, wenn man einen RAM- 
Disk-Driver für eine neue RAM-Karte im- 
plementieren will. 


Welche Speicherkapazität? 

Eine RAM-Karte für ProDOS kann theore- 
tisch eine Speicherkapazität von 32M ha- 
ben. 64K dürfte jedoch die praktische Un- 
tergrenze und 1M die praktische Ober- 
grenze sein. 


Welcher Slot und Drive? 

Sinnvollerweise wird man die RAM-Disk 
mit demselben Slot s ansprechen (CATA- 
LOG, Ss), in dem die RAM-Karte steckt, 
obwohl dies nicht unbedingt erforderlich 
ist. In der PRODOS Global Page befinden 


12 


u EEE 


MEGAWARP-Geschwindigkeitstest 


MEGAWARP.ALT = Driver der Firma IBS, Bielefeld 

MEGAWARP.NEU = unsere Version für Accelerator 
a) MEGAWARP.REL (relokativ — nicht selbstmodifizierend) 
b) MEGAWARP.990® (nicht relokativ — selbstmodifizierend) 


1. ”High-Level”-Test 
1.1. BSAVE-BLOAD-Testprogramm 


16 * 32768 « 2 für BSAVE/BLOAD = 1.948.576 = 1 Megabyte. 
Grobwert ohne Berücksichtigung der Directory- und Index-Blockzugriffe. 


1® FOR X = 1 T® 16: PRINT CHR$(4) "BSAVE XXX, A$1000,L$8000": NEXT 
20 FOR X = 1 TO 16: PRINT CHR$(4) "BLOAD XXX": NEXT 
30 PRINT CHR$(7) 


1.2. Testwerte in Kilobytes/Sekunde 
MEGAWARP.ALT MEGAWARP . NEU 64K-Karte (1) 64K-Karte (2) 


Ohne ACCEL 20.7 20.7 26.2 21.5 
Mit ACCEL 25.9 37.9 49.9 35.5 


2. ”Low-Level”-Test 


2.1. BLOCK-READ/WRITE-Testprogramm 


BLOAD SPEEDTEST 

CALL -151 

303: 80 (für Read-Test) 

300G 

303: 81 (für Write-Test; zerstört RAM-Disk-Inhalt) 

309G 

Der Speedtest kann auch für Festplatten und Disk-II-Drives 
verwendet werden. Zuvor Parameter (Unit usw.) entsprechend ändern. 


ORG $P39® 
SPEEDTEST 
32 mal 64 Blocks lesen 


oder schreiben = 2948 Blocks 
= 1M = 1.948.576 Bytes = 2120 


ovoısvVukPhuvmdıH- 
“*RAKKKAKKH 


0300: AcC BA 03 19 JMP START 
0303: 80 ll  RDWR HEX 8® ;Read (81=Write) 
0304: AP 12 UNIT HEX 49 ;S4,D1 (69=S6,D1l) 
0305: 20 13 MAL DFB 32 ‚Wieviel mal? 
306: 65 99 14 ERSTER DA 191 ‚Erster Block 
0308: AA BB 15 LETZTER DA 164 :Letzter Block 
030A: AD 03 03 16 START LDA RDWR 
030D: 8D 2B 03 17 STA COMMAND 
0310: AD BA 03 18 LDA UNIT 
0313: 8D 50 03 19 STA UNITNO 
0316: AD 05 03 2 LDA MAL 
0319: 8D 55 03 21 STA MALCNT 
Ö31lC: AD d6 3 22  LOOPI LDA ERSTER 
ß31F: 8D 53 03 23 STA BLOCKL 
0322: AD 07 03 24 LDA ERSTER+1 
0325: 8D 54 03 25 STA BLOCKH 
0328: 20 00 BF 26 LOOP2 JSR $BF®® ‚MLI 
032B: 89 27 COMMAND HEX 8® 
032C: AF 93 28 DA COUNT 
ß32E: BB 26 29 BCS ERROR 
0330: EE 53 03 39 INC BLOCKL 
0333: DB 93 31 BNE SUBTRACT 
0335: EE 54 03 32 INC BLOCKH 
0338: 38 33 _SUBTRACT SEC 
0339: AD 08 03 34 LDA LETZTER 
033C: ED 53 03 35 SBC BLOCKL 
033F: AD 09 B3 36 LDA LETZTER+1 
0342: ED 54 03 37 SBC BLOCKH 
0345: B® El 38 BCS LOOP2 
0347: CE 55 03 39 DEC MALCNT 
034A: D® DP 40 BNE LOOP1 
034C: AC 3A FF 41 JMP $FF3A ‚BELL 
B34AF: 93 42 COUNT HEX 93 
0350: 49 43 UNITNO HEX 4® :S4,Dl 
0351: 90 49 44  PUFFER DA $4909 ;-$AlFF 
0353: PP 45 BLOCKL HEX 66 
0354: BB 46 BLOCKH HEX 699 
47 * 
0355: 99 48 MALCNT HEX 99 
0356: AC DA FD 49 ERROR JMP $FDDA ; PRBYTE 
89 Bytes 


Peeker 7/85 


Wir vertreten unter anderem 
folgende Firmen in Deutschland: 


PASSPORT @Orange Micro 
DESIGNS ınc inc. 


)THUNDERWARE INC. (ap Moala 


Technologies Corporation 


R Mountain Computer Inc. 


uud 


h 


SUDLOGIC 


Communications Corp. 


Tits 


Ile INC. 


E 


E California Computer Systems 


3] Micr. MICROWARE 


Händleranfragen erwünscht. 


panday@ft Dr.-Ing. Eden 


Uhlandstraße 195 - 1000 Berlin 12 - Mo-Fr 10-18 Uhr, Sa 10-13 Uhr 
Telefon: 0 30/31 04 23 - Telex: 185 859 


o) kan ge Druckerinterfaces für Apple II+/e/ 
Printer Interface c/IIl Interfaces auf dem neuesten 
Stand der Technik. Kompatibel mit allen gängigen Druckern wie: 
APPLE, EPSON, STAR, NEC, OKIDATA usw. Passende Treiber- 


software wird über Dip-Switch ausgewählt. 


Grappler “» Grafikfähiges Druckerinterface 
Printer interface das keine Wünsche mehr offen läßt. 
Über 2 Dutzend Kommandos ermöglichen die volle Kontrolle 

über alle Möglichkeiten Ihres \ 
Druckers. Jetzt auch mit 

lle Features: Double Hires 
Grafics und 80 Zeichen Dump 
mittels Druckerpuffer nachrüstbar 
über Bufferboard. 





Grapp « Besitzt alle Vorzüge des Grappler +, 
hat aber zusätzlich einen integrier- 





ten 16 K Druckpuffer, der auf 
32 oder 64. K aufrüstbar ist. ‘ 


SERIAL Serielles Druckerinterface 
Gräppler speziell für den Apple Image- 
Printer Interface writer. 
Seriell-nach-Parallel-Wandler für 
OTLINK den Ilc im Kabel integriert. 
wie Hotlink, jedoch zusätzlich 


[NRAPPLER C Imagewriter Emulation und Grafik 


Software-Diskette. 


panday®frt Dr.-Ing. Eden 


Uhlandstraße 195 : 1000 Berlin 12 : Mo-Fr 10-18 Uhr, Sa 10-13 Uhr 
Telefon: 0 30/31 04 23 : Telex: 185859 











Peeker 7/85 











ThunderScan." 


Ein neues optisches Lesegerät, das beliebige 
Vorlagen in MacPaint überträgt: Fotos, Zeich- 
nungen, Landkarten und Illustrationen werden 
in den Apple-Imagewriter eingespannt und von 
einem Lesekopf, der das Farbband ersetzt, 
abgetastet. 


& File Edit Scanner Tools 














ThunderScan’“ 










Light _Intensity_Gauge 





EL 70 


Contrast = 110% 


SE 


Brightness = +10 


(Pause) 
m 














Lines to go: 186 






® 32 Graustufen 
@® 30 Punkte/cm Auflösung 
® Übertragungsmaßstab 25% - ADO % 
® Vorlagen bis 20x25 cm ze 
@® Nachträgliche Veränderung des Kontrasts 

und der Helligkeit. Thunder Sean 


Panday®ftı....:s-- 


Uhlandstraße 195 - 1000 Berlin 12 - Mo-Fr 10-18 Uhr, Sa 10-13 Uhr 
Telefon: 0 30/31 04 23 - Telex: 185 859 


wir haben die und die 
Software... hingehen 




























Be >  _ TRRRRERBERE —__——__[[[_UUUUU_UUUUUU 227 GER BF RRRRRRRRSSSESSRBRRRRRRRHSRENE — >” - Do 7 > - ” ‚=> > $ - V VRODRESRRRNRBNESBEEESEEEEEERE 





ALLES FÜR DEN APPLE Il+, Ile, IIc UND MACINTOSH 


een ‚Ing. Eder 


UHLANDSTR. 195 - D-11000 BERLIN 12 
TEL.(O3O) 310 423 -TELEX: 185859 
Autorisierter daroia Fachhändler MICROSOFT. Distributor 





13 





sich ab $BF10-$BFZ2F die Einsprungadres- 
sen für die diversen Volume-Driver. Das 
Installierungsprogramm muß dort den 
Vektor für den entsprechenden Slot und 


Drive eintragen, die Device-Anzahl 
($BF31) erhöhen und die Device-Liste ab 
$BF32 um das Device-Bit-Muster für die 
RAM-Disk erweitern (s. „ProDOS für Auf- 
steiger“, Bd. 1, S. 51ff.). Eine RAM-Disk 
muß mit einem und nur einem Drive ange- 
sprochen werden. Befände sich beispiels- 
weise die RAM-Karte in Slot 4, so könnte 
man zwar bei $BF18 für Drive 1 und bei 
$BF28 für Drive 2 quasi einen Doppelein- 
trag vornehmen, doch würde dann das 
MLI u.U. „durchdrehen“, weil derselbe 
Volume-Name für 2 Units gelten würde. 


Was bedeutet Formatierung? 

Das Installierungsprogramm sollte die For- 
matierung als gesonderte Option zulas- 
sen, so daß man den Driver nach verse- 
hentlichem Neubooten wieder anschlie- 
Ben kann, ohne daß der Inhalt der RAM- 
Disk zerstört wird. Der 64K-RAM-Disk- 
Driver der Firma Apple verfügt leider nicht 
über diese Option. Die eigentliche „For- 
matierung“ sollte zunächst alle Blocks (= 
512-Byte-Bereiche der RAM-Karte) oder 
zumindest die Blocks 2-6 auf null setzen 
und dann die Blocks 2-6 entsprechend der 
Kapazität der RAM-Karte initialisieren. 
Blocks 2-5 enthalten das Volume-Directo- 
ry. Das Volume-Directory muß 4 Blocks 
umfassen, weil sonst das MLI oder das 
BASIC.SYSTEM „durchdrehen“ kann. 
Auch dies ist von der Firma Apple bei 
ihrem 64K-Karte-Driver nicht beachtet 
worden, so daß sich einige Anwenderpro- 
gramme wie Mailmerger (s. Peeker, Heft 
4/1985, S. 73) mit /O-Error oder End-of- 
Data „verabschieden“. Ferner muß der 
Volume-Bit-Map-Block 6 — bei RAM-Kar- 
ten üblicherweise nur ein einziger Block — 
angelegt werden. (Ein Beispiel für die An- 
lage der Blocks 2-5 findet sich in „ProDOS 
für Aufsteiger“, Bd. 2, Kap. 3.5.) 


Wohin mit dem Driver? 

Die Firma Apple hat für sich die gesamte 
64K-Karte „gepachtet“ und einen Teil des 
eigenen 64K-Karte-Drivers dort unterge- 
bracht, der je nach ProDOS-Version ein- 
mal hier und einmal dort liegt. Fremdent- 
wickler haben es hier schwerer, da der 
Driver nur entweder in dem Bereich unter- 
halb vom BASIC.SYSTEM, d.h. unterhalb 
von $9A00 (vgl. MEGAWARP.NEU), und/ 
oder im Interface-Bereich ($Cs00-$CsFF 
sowie $C800-$C8FE, vgl. MEGAWARP. 
ALT) und/oder auf der RAM-Karte selbst 
liegen kann (vgl. 64K-Karte-Driver). Wenn 


14 





2.2. Testwerte in Kilobytes/Sekunde 
MEGAWARP. ALT 


MEGAWARP .. NEU 


Read Write Read Write 
Ohne ACCEL 38.2 53.6 38.3 53.6 
Mit ACCEL 40.1 56.6 81.9 128.0 


3. MEGAWARP.998® und MEGAWARP.REL für Accelerator-Besitzer 


MEGAWARP.99ß® und MEGAWARP.REL sind funktionsgleich. MEGAWARP.9999 
ist jedoch nicht relokativ und etwas schneller ("getunt"). 


l. AP33 (256-KBit-Chips) in Slot 4 installieren 
2. ProDOS (beliebige Version) booten 

3. BRUN INSTAL (von mitgelieferter IBS-Diskette) 
4. BRUN MEGAWARP.99ß® oder BRUN MEGAWARP.REL 


Nunmehr hat man eine erheblich gesteigerte Übertragungsrate. 
Für andere Slots (als Slot 4) Quellcode entsprechend ändern. 


MEGAWARP.REL ist aus Platzgründen nicht gelistet. 


l ORG $1FBA 
2 * 
3 * MEGAWARP. 999 
4 ———— 
5 ” 
6 * "Speed-Version" von MEGAWARP.NEU 
7 * Nicht relokativ wegen der Label 
8 * WRPAGEl und RDPAGE2, deren 
9 * Adressen gepokt werden. 
19 * Slot-Adresse (hier Slot 4) 
11 * modifizierbar. 
12 * 
13 SLOT4 EQU $49 ‚4x*16 
14 SLOTC4A EQU $C499 
15 E 
16 * Move-Routine 
IT “ 
18 = 
19 GETBUFR EQU $BEF5 
20 SLDR EQU $BF19 
21 COUT EQU $FDED 
22 * 
23 * 1 Page über Getbuffer-Routine anfordern 
24 * 
1FBA: AY9 @l 25 LDA #1 
1FBC: 28 F5 BE 26 JSR GETBUFR 
1FBF: B® 24 27 BCS ERROR 
1FC1: C9 99 28 CMP #$99 
1FC3: D® 29 29 BNE ERROR 
30 * 
31 * Driver nach $99ß® oder tiefere Page moven 
32 * 
IFC5: A® 99 33 LDY #9 
1FC7: BY BB 28 34 MOVE LDA $2009,Y ‚fest! 
1IFCA: 99 00 99 35 STA $990®,Y ‚fest! 
IFCD: C8 36 INY 
1FCE: D® F7 37 BNE MOVE 
38 * 
39 x Slot-Drive-Tabelle nach $C4ß® absuchen 
Ad x 
1IFDß: B9 10 BF 41 SLDR1 LDA SLDR,Y 
1IFD3: AA 42 TAX ;X=LL 
1FD4: C8 43 INY 
1FD5: B9 1® BF 44 LDA SLDR,Y ;‚ A=HH 
1FD8: E® BB 45 CPX #$09 ;LL=ß9? 
IFDA: D® 94 46 BNE SLDR2 
1FDC: C9 C4 47 CMP #>SLOTC4 
IFDE: F® BA 48 BEQ SLDR3 
1FEß: C8 49 SLDR2 INY 
lFEl: C® 19 59 CPY #$19 
lFE3: D® EB 51 BNE SLDR1 
1FES: AY 87 52 ERROR LDA #$87 ;Bell 
1FE7: 4C ED FD 53 JMP COUT 
54 * 
55 * GETBUFR-HIMEM in SLDR eintragen 
56 . 
1FEA: A9 99 57 SLDR3 LDA +#$99 ;$9999 
lFEC: 99 18 BF 58 STA SLDR,Y 
lFEF: 88 59 DEY 
IFF®: A9 99 6% LDA #$99 00 
IFF2: 99 18 BF 61 STA SLDR,Y 
62 * 
63 + In System-Bit-Map die Page $99 
64 x als belegt markieren 
65 » 
IFF5: A9 7F 66 LDA #%@1111111 
1FF7: 8D 6B BF 67 STA $BF6B ;$9809-$9FFF 
68 * 


ccp datentaechnik 


FORTH-SYSTEME 


FORTH ist eine schnelle Programmiersprache, sie 
ermöglicht Programmtransfer zwischen APPLE und anderen 
Rechnern. 


640 KByte-Drives für den Apple //c!! 

@ 5'/4- od. 31/-Zoll-Format (Teac FD55/35-F) 

@ FD55-F umschaltbar auf 35/40 Track 

® Anschluß an die externe Laufwerkbuchse 

@ Durch Einbauplatine (kein Löten) 640 KByte im Direktzugriff 

@ Einfache Anpassung für DOS 3.3, UCSD-Pascal und PRODOS 
durch menügeführten Patch 

© Anpassung von CP/M in Verbindung mit einer Z 80-Zusatzplatine 
in Vorbereitung 

® anschlußfertig im Gehäuse 


Festplatten für Apple Il (//e) 


@ 51/4 Zoll-Format (Slimline) 

@ Booten direkt von der nu. in DOS 3.3, UCSD-Pascal, 
PRODOS und CP/M 2.2 / 3.0 

@ Gemischtbetr. mit 35/40/80/160 Track-Drives 

@ Copy- und Install-Programme im Lieferumfang 

@ Umfangreiches Manual 

®@ z. B. 12 MB form. incl. Netzteil u. Contr., 
anschlußfertig an Ihren Apple DM 3835,— 


640 KByte-Drives für Apple Il (//e) 


@ 5'/4- od. 31/2-Zoll-Format (Teac FD55/35-F) 

@ FD55-F umschaltbar auf 40 Track (Apple kompatigel) 

@ Installationssoftware für DOS 3.3, UCSD-Pascal, CP/M 2.2, 
CP/M 2.23 (60K), PRODOS, AP22, ALS CP/M+ 

@ Umfangreiches Handbuch 

® Anschlußfertige Auslieferung incl. Contr. und 2 Drives 

@ Diskstation 55ll (2 Teac FD55-F, 1.22MB) . . . DM 1498,— 

@ Diskstation 3511 (2 Teac FD35-F, 1.22MB) . . . DM 1580,— 


Alles für Ihren Apple 
Info bei: 
ccp-datentechnik 
Herderstraße 12 — 2000 Hamburg 76 


gm MICROMINT 


LLTREFFER 2 
Be 


LASAR 16 u 
IBM 256 K, 2 x TEAC BFDD, Contr. ( HAKITIA BE) 


color Graphik, Multifunktionscard, 


Newzeiisn 4.6785 


Unser Buchangebot zu FORTH: 


Programmieren in FORTH v. Leo Brodie dt. 48,— DM 
Thinking FORTH v. L. Brodie engl. 65,— DM 
Mastering FORTH, Einführung in F83 78,— DM 
FORTH Encyclopedia 98,— DM 
Expertensystem in FORTH 98,— DM 


FORTH-Programme für APPLE IlV/e/c/+: 


fysFORTH 0.3 mit 600seitigem Handbuch 198,— DM 
MasterFORTH83 v. Micro Motion Grundsys. 398,— DM 
Floatingpoint, Hires, Modules 350,— DM 
LMI FORTH unter PRODOS für Ile/c mit 

Banksupport, Editor, Tools in Kürze 1b. 398,— DM 


FORTH-Programme für APPLE Macintosh: 


NEON! v. Kriya Systems, Objektorientierte 

Programmierung, Einführungspreis 999,— DM 
Mac FORTH v. Creative Solutions ab 680,60 DM 
MasterFORTH83 v. Micro Motion Grundsys. 498,— DM 
Floatingpoint und Modulesextension 398,— DM 


FORTH-SYSTEME Angelika Flesch 


Pf. 1226, 7820 Titisee-Neustadt, Tel. 07651/1665 

















L ASAR ZE a Weil wir Ihren IMac professionell von 126KB auf 
ns Dan j 512 KB umrüsten. 
| 290; Schicken oder bringen Sie uns Ihren Computer. Wir 
Außerdem volles Rückgaberecht innerhalb garantieren die Rucksendung innerhalb 24 Stunden. 
14 Tagen ohne Begründung. 
Apple | IBM Nach der Umrüstung haben Sie bei uns 1/2 Jahr 





@ Mehrzweckklappgehäuse It. Abb. 147,— | 147,— Garantie! 

® Schaltnetzteile Apple5 A/IBM 15 A 115,— | 238,— 

® Profitastatur dtsch. LASAR 2000 291 ,— | 291,— 2 i 2 R 2 
© interface ab 75,- | 148,- Wır vermitteln Ihnen auch gerne einen Händler in 
@ Monitor 22 Mhz incl. Fuß, bernstein 289,— | 289,— Ihrem Raum, der Ihnen unsere Umrüstung einbaut. 


Kaufgarantie/Tiefstpreisgarantie/1A Qualität: 100 % kompatibel inkl. Systemsoftware 


Made by Micromint: Apple li 495,-, Apple lie 695,-, IBM 895, Fertigplatinen. Tragbare RR . 
Gehäuse für 7-Zoll/9-Zoll-Monitore 595,- DM inkl. Tastaturen. Winchester 27 MB auf Der Preis ü Dım 1467.00 incl. MWST . 


Anfrage 1A First Class Controller bis 140 MB 935,- DM. 
Generalimporteur MICROMINT Computer GmbH 


Be a 2 : nn Erkrath 2 GP) FD al, Ping later. a 
02104/3 30 24 it a) mas, ral:0211=>773270 


Peeker 7/85 15 








der Driver im Slot-Bereich $Cs00-$CsFF 
liegt, muß dafür Sorge getragen werden, 
daß nach PR#s nicht der Driver aktiviert 
wird (vgl. MEGAWARP.ALT). Zumindest 
sollte man bei $Cs00 einen Sprung zu 
einer Fehlerroutine implementieren, etwa 
BIT $C082 

JMP $FF59 (Reset) 

(vgl. hierzu Peeker, Heft 5/1985, S. 14, 
„SLOTRAMDISK“). 


Welche Parameter auswerten? 

Vor dem Sprung zu dem RAM-Disk-Driver 
sind vom MLI in der Zeropage folgende 
Werte abgelegt worden: 
$0042: Befehl (O=Seek, 
2=Write, 3=Format) 

$0043: Unit-Nummer (z.B. 40 für S4, D1) 
$0044: LLHH des 512-Byte-l/O-Puffers 
$0046: LLHH der Blocknummer 

(vgl. hierzu Peeker, Heft 5/1985, S. 59, 
„DISKDRIVER.DEMO“) 

Den Vergleich der vorgegebenen Uhnit- 
Nummer mit der eigenen Unit-Nummer ist 
normalerweise entbehrlich. 

Die Blocknummer sollte bei Bedarf mit 
dem zulässigen Blockbereich aufgrund 
der Belegung der RAM-Karte verglichen 
werden, um ein „Durchdrehen“ beim 
„Low-Level“-Zugriff zu vermeiden. Weder 
MEGAWARP noch der 64K-Karte-Driver 
nehmen hierauf Rücksicht, so daß bei- 
spielsweise der 64K-Driver beim Block- 
read im Bereich Blocknummer $0004- 
$0007 nur noch „Schrott“ liest. 

Die Startadresse des //O-Puffers wird man 
als korrekt annehmen müssen, da das MLI 
vor dem Sprung zum Driver bereits Sy- 
stem-Bit-Map-Konflikte überprüft hat. 

Von den 4 möglichen Befehlen sind Seek 
und Format auszufiltern. Bei Seek kehrt 
man mit CLC und Akkumulator = $00 
(„kein Fehler“), bei Format mit SEC und 
Akkumulator = $27 („\/O-Fehler“) zurück. 
Bei Read wird der entsprechende RAM- 
Disk-Inhalt in den I/O-Puffer übertragen, 
während bei Write der I/O-Puffer-Inhalt in 
‘den entsprechenden RAM-Disk-Bereich 
transferiert wird. Danach wird der Driver 
mit CLC und Akkumulator = $00 ver- 
lassen. 


1=Read, 


Wie transferieren? 

Das eigentliche Übertragen der Daten ist 
die Hauptaufgabe des RAM-Disk-Drivers, 
die jedoch nicht generell beschrieben wer- 
den kann, da sie von der Implementierung 
der Softswitches der Karte abhängt. Man 
beachte jedoch, daß vor dem Sprung zum 
Driver die Language-Card eingeschaltet 
worden ist (bei den momentanen Pro- 
DOS-Versionen Bank 1 = $C08B, bei 


16 


IFFA: 
IFFC: 8D FB BE 
IFFF: 


A9 95 


60 


: A5 46 


: 8D Cl 
:A5 47 


: 89 19 
: 8D C2 


. 


KEERKKKKKTK TFT TKI  TKI FI KK KK a 8 


ADRLREG 
ADRMREG 
ADRHREG 
DATAREG 


* 
* 
* 
* 


* 
* 
* 


* 
* 


* 


“ER R * 


Boot-HIMEM auf $9509 setzen 


LDA 
STA 
RTS 
ORG 


+$95 
$BEFB 


:$950® 


;$1IFFF!!! 
$9999 


Megawarp-ProDOS-Driver 


Originalversion von Firma IBS, Bielefeld. 
Umgeschrieben und gestrafft für Driver 
außerhalb des $C8ß®ß-Bereiches. 

Mit Accelerator größere Übertragungsrate. 
U.Stiehl/25.905.1985 


Command: ®® 
Öl 


Seek 

Read 

Write 

Init 

Slot 4, Drive 1 


a 
av) 
a u u u | 


Es gibt 1 2@-Bit-Adreßregister 
1 4-Bit-Parity-Register 
1 8-Bit-Datenregister 


Par. HH MM EL 
7654 .... 3210 FEDCBA9Y8 76543219 
C082+SP9 CO81+Sß CPOSP+SP 


Datenr. 
76543210 
CO83+SQ 


Das Datenregister besteht aus 2® Bits: 
8-Bit-ADRLREG. = Bits ß-7 

8-Bit-ADRMREG. Bits 8-15 

4-Bit-ADRHREG. = Bits 16-19 

(Die 4 restlichen Bits dienen Paritätsprüfung) 
Dies entspricht 2 hoch 2® = 1 Megabyte 

Die Blocknummern im Bereich $P9P0-$07FF 
werden wie folgt umgerechnet (Beispiele:) 
Block $P000 -> $PP@WRp HHMMLL Adreßregister 
Block $0001 -> $000200 HHMMLL Adreßregister 
Block $0002 -> $0004A0® HHMMLL Adreßregister 
Block $07FF -> $QFFEß® HHMMLL Adreßregister 


EQU 
EQU 
EQU 
EQU 


$CO80+SLOTA 
$CO81+SLOT4A 
$C082+SLOT4 
$Cc083+SLOT4A 


Blocknummer -> ADRMREG-ADRHREG 
Y-Register -> ADRLREG 

LDA BLOCKL ‚520909! 
ASL 
STA 
LDA 
ROL 
ORA 
STA 


ADRMREG 
BLOCKH 


+2700010000 ;Parity-Bit on 
ADRHREG 


Read/Write/Seek/Format? 


LDA COMMAND 

BEQ OKAY ‚Seek 

CMP_ #$93 ;Format 

BEQ FEHLER 

LSR ‚C=1=Read 

LDX #2 ‚2 Pages 

LDY #9 ; Y=ß 

BCS RDPAGE® ;C=1=Read 
Schreibvorgang 


l. Ggf. Bit 4 von ADRH auf 1 setzen 

für Paritätsprüfung (ORA #+%PPd1P009) 
. Umgerechnete Blocknummer in 

ADRL-, ADRM- und ADRH-Register poken 
3. Datenbyte in Datenregister poken 


Lab) 


Peeker 7/85 








späteren ProDOS-Versionen evtl. Bank 2 
= $C083), so daß sich nach dem Rück- 
sprung vom Driver der LC-Read/Write-Zu- 
stand nicht geändert haben darf. Einer der 
Gründe für den Read-Write-Enable-Zu- 
stand der LC liegt darin, daß sich der MLI- 
interne I/O-Puffer für den Directory-Block 
usw. in der LC befindet. RAM-Karten, die 
in den Bereich $D000-$FFFF „gemappt“ 
sind (z.B. AP17 der Firma IBS), haben es 
hier besonders schwer. Dies gilt auch für 
die Übertragung eines Blocks von der LC 
der 64K-Karte in die LC des Mother- 
boards. In beiden Fällen ist eine Zwi- 
schenpufferung erforderlich, die die Über- 
tragungsrate entsprechend vermindert. 


Weitere Features? 

Neben den skizzierten Grundfunktionen 
eines RAM-Disk-Drivers sind noch weite- 
re Features denkbar. Beispielsweise 
könnte man den Format-Befehl implemen- 
tieren, so daß die RAM-Disk neu initiali- 
siert werden könnte. Da jedoch das BA- 
SIC.SYSTEM den alten INIT-Befehl nicht 
unterstützt, wird man ihn wohl auch bei 
RAM-Karten nicht vorsehen müssen. 
Ferner wäre es denkbar, daß man eine 
RAM-Disk mit PR#s bootet. Auch dieses 
Feature ist entbehrlich, weil unter ProDOS 
bereits der Reboot-Befehl - im BASIC.SY- 
STEM „BYE“ genannt — vorgesehen ist. 
Bei großen RAM-Karten ist es denkbar, 
daß man ähnlich wie bei Festplatten ge- 
trennte Bereiche für DOS 3.3, ProDOS, 
Pascal und CP/M einführt. Da jedoch der 
RAM-Disk-Inhalt nach dem Ausschalten 
des Apple gelöscht wird, dürfte sich die 
Mühe für eine derart diffizile Konfigurie- 
rung nur bei Spezialanwendungen lohnen. 


Für Ilc und Ile mit 64K-Karte 


SUPERPLOT 


Double-Hires-Utility 


9962: 8A 
9963: 18 
9964: 6% 
9965: A9 
9967: 38 
9968: BP 


176 Bytes 





WRPAGE® LDA PUFFERL 
STA WRPAGEI+1 
LDA PUFFERH 
STA WRPAGEI+2 
WRPAGEl LDA $FFFF,Y ; Dummy! 
STY ADRLREG 
STA DATAREG ;A->Megawarp 
INY 
BNE WRPAGEI 
INC WRPAGEI+2 
INC ADRMREG 
DEX 
BNE WRPAGELI 
BEQ OKAY 
* 
* Lesevorgang 


* l. Umgerechnete Blocknunmer in 

* ADRL-, ADRM- und ADRH-Register poken 
* 2. Datenbyte aus Datenregister peeken 

* 3. Ggf. Bit 4 von ADRH auf 1 prüfen 

* wegen gerader Parität (BIT ADRH) 

%* 
R 


DPAGE®O LDA PUFFERL 
STA RDPAGE2+1 
LDA PUFFERH 
STA RDPAGE2+2 
RDPAGEl STY ADRLREG 
LDA DATAREG ;Megawarp->A 
RDPAGE2 STA $FFFF,Y ; Dummy '! 
* 
* Wegen der Parity-Prüfung ist Blockread ca. 59% 
* langsamer als Blockwrite. Dies gilt jedoch nur für 
* den Low-Level-MLI-Zugriff. Ansonsten ist z.B. BSAVE 
* langsamer als BLOAD! 
* 
BIT ADRHREG ‚Parity=1? 
BMI FEHLER 


INY 
BNE RDPAGEIl 
INC RDPAGE2+2 
INC ADRMREG 
DEX 
BNE RDPAGELI 
* 
* Fehler? 
* 
OKAY ;X=ß=okay 
‚okay 
ENDE 
FEHLER ‚I/0-Error 
‚nicht okay 


von Karl-Walter Bott, 1984, Programmdiskette und Manual, DM 48,— 


SUPERPLOT ist eine neue, ungewöhnlich kompakte und schnelle Ampersand-Utility für Double Hires, die einschließlich eines 
vollständigen ASCII-Shape-Zeichensatzes wahlweise in Bank 1 oder Bank 2 der Language Card liegt und damit sowohl unter 
ProDOS als auch unter DOS 3.3, falls letzteres in die LC-Bank geschoben wurde, benutzt und in eigene Applesoftprogramme 
integriert werden kann. SUPERPLOT unterstützt die üblichen HGR-Befehle, denen lediglich ein & vorangestellt werden muß, 
also z. B. & HPLOT 500, 100 TO 500, 150 usw. SUPERPLOT ist speziell für das Plotten von beschrifteten wissenschaftlichen 
Funktionskurven mit hoher Auflösung gedacht und weniger für HGR-Spiele. 


Hüthig Software Service - Postfach 102869 - 6900 Heidelberg 1 


Peeker 7/85 





17 





Betriebssystem CP/M 
Vom Monitorprogramm zum 
Mehrbenutzersystem. 

Von Jürgen Plate. 

1984, 351 Seiten, 30 Abb., 

3 Tab., geb., DM 56,- 





Das Buch beschreibt ausführ- 
lich die Kommandos, ihre 
genaue Syntax und die einzel- 
nen Teilprogramme von CP/M 
wie BIOS (systemspezifischer 
Teil), ED (Editor), ASM (Asem- 
bler, inklusive einer Beschrei- 
bung des 8080-Befehlssat- 
zes), SYSGEN und STAT. 

Der Beschreibung von CP/M 
ist das Listing eines komfor- 
tablen Monitorprogramms für 
Z-80-Computer vorangestellt, 
das eine elementare Program- 
mierung auf Maschinenebene 
erlaubt, solange man CP/M 
noch nicht geladen hat. Das 
kann z. B. zur Fehlersuche 
sehr nützlich sein. Am Schluß 
des Buches findet sich auch 
eine Kurzbeschreibung der 
Multitasking-/Multiuser- 
Betriebssysteme. 


Das Buch zum Apple Il 
von Erich Esders 

1985, 210 S., 119 Abb., geb, 
DM 54,— 


Wenn hier vom Apple Il 
gesprochen wird, so gilt das 
auch für den Ilplus, den lleuro- 
plus und die lle-Versionen 
sowie für den ganzen „Apple- 
Nachbau“. Das Buch ist ein 
Wegweiser durch diesen 
Rechner, um mit ihm schneller 
und effektiver zu arbeiten. Es 
geht hier weniger um das ele- 
mentare Programmieren des 


18 









Rechners, sondern um 
Assemblerprogramme, die 
extensiv Monitor-ROM- 
Subroutinen benutzen. Diese 
hat der Autor nach Sach- 
gebieten geordnet, z. B. 
Mathematik, Graphik, String- 
Bearbeitung + Disassembler- 
Listings und diese wiederum 
mit Erklärungen und Applika- 
tionen komplettiert. Eine aus- 
reichende Dokumentation ist 
dabei immer gewährleistet. Sie 
geht schrittweise vor, von der 
Aufgabenstellung über die 
Programmentwicklung bis zum 
lauffähigen Maschinenpro- 
gramm. Die angebotenen Bei- 
spiele sind ausbaufähig und 
lassen der eigenen Kreativität 
reichlichen Spielraum. Viele 
neuartige Tips und Tricks wird 
auch der beschlagene Apple- 
Benutzer begrüßen. 

Aus dem Inhalt: 

Der Mikroprozessor des 
APPLE Il. Der APPLE II und 
seine Speicheraufteilung. 
APPLESOFT und seine 
Arbeitsspeicher-Bereiche. Der 
MICROSOFT-Basic-Inter- 
preter: Die Zeichen-Lese- 
Routine. Interpretierer und 
Lokalisierer. Handler-Routi- 
nen. BASIC/Maschinen- 
sprache-Interfaces. 
DISAS-Generator. Unterpro- 
gramme im APPLESOFT- 
Basic-Interpreter: Softschalter 
und -Flags. Ausdrucks-Inter- 
pretierer. Low-Resolution- 
Graphik. Fehler-Behandlung. 
Applikationen: Arithmetik- 
Demonstration „FP-CALC“, 
Hex-Dumps der Applikationen. 
BASIC-Monitor BASMON/D: 
Vorstellung der neuen Kom- 
mandos. Das Programm 
„BASMON/D“. Implementie- 
rung und Laufbeispiele. 
BASIC-Interpreter-Vergleich 
APPLE Il - Commodore 64: 
Arithmetik-Demonstration 
„FP-CALC/64“. Listen: Die 
Token des APPLESOFT-Basic. 


Apple II ROM Listing 
von Matthias Buck 
1984, 116 S., Kart., DM 59,- 


@appie II 


ROM 


EITIWTTUITCITITILTUTCT UI 


Listing 





| 
I für Appiesoft-BASIC- | 
Interpreter 
von Matthias Buck 
| 


syılat 


KÜrla) 






ighistieieligiigt R 


u Valaauıls 










N 








vs " 





u RE 


MIKROCOMPUTER 


Das deutsche Apple-II-ROM- 
Listing ist da! 

Einleitung zum prinzipiellen 
Ablauf des Applesoftinter- 
preters: 

® Aufbau und Verarbeitung 


der/des Programmtextes - 
Variablentabelle - String- 
space - Fließkommaformate 
- Basicstacks (GDSUB, 
FOR-NEXT, ...) 

® Beschreibung der wichtig- 
sten Unterprogramme, z. B. 
Variablensuche, Garbage 
collection, Ausdrucksaus- 
wertung, CHRGET, ... 

® Vollständig disassemblierte 
und sehr ausführlich 
deutsch kommentierte Auf- 
listung des Applesoft- 
BASIC-Interpreters 

® Übersichtliche Auflistung 
aller vom Interpreter benutz- 
ten RAM-Zeilen mit allen 
Verwendungszwecken 

® Über 150 ausführlich doku- 
mentierte Unterprogramme: 
- Funktion 
- Ein/Ausgabeparameter 

Auch für Apple-lle und c und 

Kompatible! 


Apple ll Pascal 
Eine praktische Anleitung 
von Arthur Luehrmann und 


Herbert Peckham 
1982, 544 S., kart., DM 59,- 


ArBLE 
PASCAL „ 





Dieses Buch ist unentbehrlich 
für alle, die die Programmier- 
sprache PASCAL lernen 
wollen und Zugang zu einem 
Apple Computer haben. 

Sie benötigen keinerlei Vor- 
kenntnisse, sondern lernen an 
Hand von Beispielen und 
Ubungen, wie man selbst 
PASCAL-Programme entwik- 
kelt und sie austestet und 
werden allmählich von Kapitel 
zu Kapitel vertrauter im 
Umgang mit dem Apple 
Computer. 


Start mit Apple-Logo 
für II, He und Ilc 

Das kleine Logo-Einmaleins: 
Grafik » Text «+ Musik 

VonD. Senftleben 

1985, 222 Seiten, DM 35,- 


Viele Mikrocomputer-Her- 
steller bieten für ihre Geräte 
neben BASIC und anderen 
Programmiersprachen 
zunehmend auch Logo an. 
Durch ihre Benutzerfreund- 
lichkeit hat diese Sprache 
bereits viele Freunde im 
Ausbildungs- und Freizeitbe- 





__ Dietrich Senitleben 
Start mit, 
Apple-Logo für 
Apple Il, Ile und Ile 





NASSEN 
es 


reich gefunden. Dabei ist 
Logo eine mächtige 
Sprache, die auch dem 
anspruchsvollen Anwender 
kaum Wünsche offenläßt. 
Mittels Schildkrötengrafik 
wird das kleine Logo-Einmal- 
eins in 12 Lektionen entwik- 
kelt. Große Bildschirmfotos 
begleiten den Leser durch 
die Lektionen. Das Buch ver- 
langt aktive Mitarbeit. Es hat 
seinen Platz neben dem 
Computer und gibt Hilfen 
und Anregungen für eigenes 
Forschen. Dank des bau- 
steinorientierten Konzepts 
kann jeder seine eigenen 
Teilbausteine erzeugen und 
sie zu neuen Blöcken 
zusammenfügen. Neben 
dem Einmaleins werden 
neue Einsatzbereiche für 
den Einsteiger erschlossen. 
Musik und Sound fehlen 
nicht. 

In diesem Buch werden die 
beiden offiziellen Logo-Pro- 
dukte der Firma Apple für die 
Rechnerfamilie Apple Il, Ile 
und lic behandelt und deren 
Unterschiede verdeutlicht. 
Weiterhin sind sämtliche 
Apple-Logo-Vokabeln über- 
sichtlich zusammengestellt. 
Dieses Buch ist ideal zum 
problemlosen und vergnüg- 
lichen Start in die Apple- 
Logo-Welt. 


Apple Il 
Anwenderhandbuch 


von Lon Poole 
1982, 450 S., zahlr. Abb., 
kart., DM 56,- 












Auch für diesen Computer 
haben wir den richtigen Leit- 
faden. Er erspart Ihnen zeit- 
raubendes und nutzloses 
Suchen nach der wirklich 
verwendbaren Dokumenta- 
tion für Ihren Computer. Das 
Anwenderhandbuch 
beschreibt zum einen den 
beliebten Apple II-Computer 
als solchen und gibt zum 
anderen ausführlich Aus- 
kunft über die normalen 
Peripheriebausteine und 
Zubehör einschließlich Disk- 
Laufwerken und Drucker. Mit 
Hilfe dieses Buches werden 
Sie Ihren Apple Il erfolgreich 
einsetzen, denn der Informa- 
tionsgehalt geht weit über 
das hinaus, was hersteller- 
seitig an Literatur angeboten 
wird. Sie lernen BASIC auf 
zwei verschiedene Arten zu 
verwenden. Wie man den 
Gebrauch von Klang, Farbe 
und Grafik zum Optimum 
führt. Sie erhalten Tips für 
fortgeschrittene Programm- 
erstellung. Sie erfahren die 
Verwendung des Maschi- 
nensprachen-Monitors 
u.v.m. Mit dem Apple Il- 
Anwenderhandbuch werden 
Ihnen alle Möglichkeiten 
eröffnet, die in diesem Com- 
puter stecken. 


Apple li Pascal 
Sprache 


1985, 197 S., DM 39,- 





Apple Il Pascal 
Betriebssystem 


1985, 256 S., DM 49,- 





Peeker 7/85 


 BucA-S5HOP 


Apple DOS 3.3 

von Ulrich Stiehl 

2. Aufl. 1984, 203 S., kart., 
DM 28,- 


Dies ist die erste deutschspra- 
chige Darstellung des Disket- 
tenbetriebssystems DOS 3.3 
für den Apple Il/II Plus/lle, die 
sich sowohl an Applesoft- als 
auch an Assembler-Program- 
mierer wendet. Sinngemäß ist 
das Buch zweigeteilt: 

Der erste Teil behandelt aus- 
führlich die dem Applesoft-Pro- 
grammierer zur Verfügung ste- 
henden DOS-Befehle, wobei 
die Textfiles wegen ihrer gro- 
Ben Bedeutung und der ver- 
gleichsweise komplizierten 
Handhabung besonders darge- 
stellt werden. Viele Textfile- 
Tricks werden hier zum ersten- 
mal geschildert. 

Aber auch im zweiten Teil fin- 
det der reine Applesoft-Pro- 
grammierer insbesondere in 
dem Kapitel „Vermischte Tips, 
Tricks und Patches“ zahlreiche 
Anregungen. Im übrigen ist der 
zweite Teil für Assembler-Pro- 
grammierer gedacht. Neben ei- 
ner detaillierten Beschreibung 
der DOS-Interna enthält dieser 
Teil elf vollständige RWTS-An- 
wenderprogramme - z.B. 
CPM-Refiner, DOS-lose Da- 
tendisk, TSL-Maker, File- 
Reader, Pseudo-Disk-Driver 
und Fastbrun-Routine —, die 
Techniken enthüllen, die bis- 
lang noch niemals publiziert 
worden sind. Dieses DOS- 
Buch ist deshalb der unent- 
behrliche Begleiter für jeden 
Apple-Programmierer. 


Apple Il 

Basic Handbuch 
von Douglas Hergert 
304 Seiten, 116 Abb. 
DM 32,- 


Das Buch ist als Nachschlage- 
werk konzipiert, daß seinen 
Platz neben jedem APPLE Il, 
II+ und Ile haben sollte. Es 
richtet sich an Anfänger und 
fortgeschrittene Program- 
mierer. 


BASIC 
HAND 
518,8; | 


BnHergert 





Aus der Praxis heraus präsen- 
tiert der Autor Tips und Vor- 
schläge, die das Programmie- 
ren leichter und zugleich effi- 
zienter machen. Alle Applesoft- 
und Integer-BASIC-Begriffe 
sind alphabetisch aufgelistet 
und werden eingehend erklärt. 


Peeker 7/85 


Dazu werden alle DOS-Befehle 
(neben vielen Begriffen der 
Computerterminologie) vorge- 
stellt. 

Beispielprogramme zeigen 
dem Nutzer, wie jeder Befehl 
funktioniert und helfen, die rich- 
tige Anwendung zu üben. Un- 
ter anderem lernt der Leser 
den besten Weg, um FOR/ 
NEXT-Schleifen und IF/THEN- 
Entscheidungen für seine 
Zwecke einzusetzen. 

Durch die präzise und leicht 
verständliche Sprache des Au- 
tors werden auch schwierige 
Befehle einfach in der Anwen- 
dung. 


Apple Maschinen- 
sprache 


von Don und Kurt Inman 
1984, 208 S., zahlr. Abb. und 
Tabellen, DM 49,— 





Dieses Buch ist wahrscheinlich 
die beste Einführung in die 
6502-Programmierung für den- 
jenigen Assembler-Anfänger, 
der zuvor noch nie ein Maschi- 
nenprogramm geschrieben 
hat. 

Aus dem Inhalt: 

Applesoft II BASIC - kurzge- 
faßt — Alles über Zeichen - Al- 
les über Speicher - Alles über 
Maschinenbefehle — Maschi- 
nenprogramme mit BASIC ein- 
geben - Graphik — Text- Ton-— 
Arithmetik — Was tun mit den 
Maschinenprogrammen 


Apple Il 

leicht gemacht 

von Joseph Kascmer 

1984, 185 S., zahlr. Abb., kart., 
DM 28,— 


Dies ist ein Buch, wie es sich 
jeder Apple-Anfänger nur wün- 
schen kann: Schrittweise, 
leichtverständliche Anleitung 
zum Umgang mit dem Apple 
mit einigen durchsichtigen, un- 
komplizierten Beispielen in Ap- 
plesoft, die ihn nicht Abschrek- 
ken, sondern ermutigen sollen, 
sich mit dem Gerät näher ver- 
traut zu machen. Damit ist „Ap- 
ple Il leicht gemacht“ das idea- 
le Einsteigerbuch für den rei- 
nen Anwender, der nicht nur 
„auf den Knopf drücken“, son- 
dern zumindest einige Details 
aus der Black Box namens Ap- 
ple erfahren will. 





Aus dem Inhalt: 

Kontrolle des Geräts — Schrei- 
ben und Zeichnen auf dem 
Bildschirm — Geheimnisvolle 
Abläufe: Programme - Ver- 
schiedene Eingriffsmöglichkei- 
ten — Mobile Speicher: Disket- 
ten - Kontrollmöglichkeiten — 
Das Innenleben 


Apple Assembler 
Tips und Tricks 


von Ulrich Stiehl 
1984, 226 S., 3 Abb., kart., 
DM 34, — 


„Apple Assembler“ wendet 
sich an alle, die bereits Anfän- 
gerkenntnisse der 6502-Pro- 
grammierung haben - z.B. 
aufgrund des Buches „Apple 
Maschinensprache“ — und nun- 
mehr ein Nachschlagewerk für 
ihren Apple Il Plus/lie/lic su- 
chen, in dem alle wichtigen 
ROM-Routinen sowie eine 
Vielzahl sonstiger Hilfspro- 
gramme in einer systemati- 
schen Form zusammengestellt 
werden. Insgesamt umfaßt die- 
ses Buch über 40 Utilities, dar- 
unter mehrere völlig neuartige 
Programme wie Double-Lores, 
Double Hires, Screen-Format 
u.a. 

Der erste Teil enthält ein Repe- 
titorium der wichtigsten Befeh- 
le, Adressierungsarten und 
sonstigen Besonderheiten des 
6502. 

Im zweiten Teil werden alle 
Adressen des Monitors zusam- 
mengestellt, die für Assembler- 
Programmierer von Nutzen 
sein können. Darüber hinaus 
findet der Leser Unterroutinen 
für hexadezimale Addition/ 
Subtraktion/Multiplikation/Divi- 
sion, Binär-Hex-ASCII-Um- 
wandlung usw. 

Der dritte Teil befaßt sich mit 
der Speicherverwaltung der 
Language Card und der lle- 
64K-Karte und enthält Move- 
Programme zum Verschieben 
von Daten in die und aus der 
Language Card sowie der 64K- 
Karte. 


Der vierte Teil ist dem Ap- 
plesoft-ROM gewidmet und li- 
stet eine große Anzahl nützli- 
cher Interpreter-Adressen. Bei 
den Utility-Programmen liegt 
das Schwergewicht auf Fließ- 
kommamathematik einschließ- 
lich Print Using. 

Der letzte Teil behandelt den 
Text- und Graphikspeicher. 
Neben einem professionellen 
Maskengeneratorprogramm 
werden auch Routinen zur 
Double-Lores- und Double-Hi- 
res-Grafik vorgestellt. 


Arbeiten mit dem 
Macintosh 


von N. Hesselmann 
416 Seiten, 320 Abb. DM 54,-— 


Das Buch erklärt den Umgang 
mit dem Macintosh von Grund 
auf, wobei auch auf elementare 
Dinge eingegangen wird, wie 

z. B. die Benutzung der Tasta- 
tur und der Maus, das Einlegen 
von Disketten und den System- 
start. Ganz besonderes Augen- 
merk wird auf die Erklärung der 
speziellen Software-Umge- 
bung des Macintosh gelegt, 
wobei das Menü- und Fenster- 
konzept sowie das Anwählen 
durch Piktogramme gekenn- 
zeichneter Funktionen klar dar- 
gestellt wird. 


Der Umgang mit den Program- 
men MacPaint und MacWrite 
wird erläutert; dies geschieht 
teilweise anhand von Beispie- 
len, die leicht nachvollzogen 
werden können. Ein umfangrei- 
ches Kapitel ist dem für den 
Macintosh erhältlichen Micro- 
soft-BASIC gewidmet. 


BASIC Ubungen 

für den Apple 

von J. P. Lamoitier 

1983, 252 S., zahlr. Abb., kart., 
DM 38,— 

Das Buch ist konzipiert, allen 
Apple-Anwendern Applesoft- 
BASIC durch praktische Ubun- 
gen an Hand von reellen Pro- 
grammen beizubringen. Daten- 









verarbeitung, Statistik, kom- 
merzielle Programme, Spiele 
und vieles mehr. Jede Übung 
beinhaltet eine Beschreibung 
der Problemstellung, eine Ana- 
Iyse der Lösungsmöglichkei- 
ten, ein Flußdiagramm und ein 
fertiges Programm samt Pro- 
belauf. 


Aus dem Inhalt: 
Ihr erstes BASIC-Programm — 
Flußdiagramme — Ubungen mit 
Integerzahlen — Elementare 
Beispiele aus der Geometrie — 
Allgemeine Übungen aus der 
Datenverarbeitung — Mathema- 
tische Berechnungen — Kauf- 
männische Berechnungen — 
Spiele - Operations Research 
— Statistik 


Apple ProDOS 
für Aufsteiger 
Band 1 


von Ulrich Stiehl 
1984, 202 S., kart., DM 28,- 


ProDOS ist das neue „profes- 
sionelle DOS“ (Professional 
Disk Operating System) für den 
Apple Ile sowie den mit einer 
Language Card ausgestatteten 
Apple Il Plus. Band 1 befaßt 
sich mit den theoretischen 
Grundlagen von ProDOS, der 
internen und externen Spei- 
cherorganisation und enthält 
grundlegende Beispielpro- 
gramme für Assembler-Pro- 
grammierer sowie generelle 
Untersuchungen zum BASIC- 
SYSTEM. Da ProDOS über er- 
heblich vielfältigere und lei- 
stungsfähigere, zugleich je- 
doch erheblich kompliziertere 
Dateistrukturen verfügt, sind 
theoretische Kenntnisse von 
ProDOS unabdingbar, wenn 
man die Features von ProDOS 
voll ausschöpfen will. 

Aus dem Inhalt: 

Ein erster Überblick - ProDOS 
und DOS 3.3 — Interne Spei- 
cherorganisation — Externe 
Speicherorganisation — MLI 
(Machine Language Interface) 
— ProDOS für Applesoft-Pro- 
grammierer 


19 





von Arne Schäpers 


Ursprünglich war dieser Artikel nebst Pro- 
gramm als Teil einer weitergehenden Be- 
schreibung der Apple-Drives vorgesehen. 
Um aber allzugroße Überschneidungen 
mit der Artikelserie von Gerhard Berg zu 
vermeiden, bringen wir dieses Programm 
als „Stand-alone“-Utility mit einem Mini- 
mum an Erklärungen. 


Die drei „kritischen“ Punkte beim Lesen 
von und Schreiben auf Diskette, nämlich 
a) Nibble-Kodierung, 

b) die zeitlichen Bedingungen beim 
Schreiben eines Bytes und 

c) Bewegungen des Arms 

werden in einer späteren Ausgabe vom 
Peeker ausführlich behandelt. 


Eine Begründung für das folgende Pro- 
gramm sollte hier auch nicht fehlen: 

So gut wie alle Disk-Utilities sind im be- 
sten Fall für vollständig kompatible 40- 
Track-Drives geeignet — Benutzern von 
Drives mit mehr als 40 Tracks bleibt nur 
die Hoffnung, daß nichts schiefgeht. 


Aus diesem Grund wird in einer der näch- 
sten Peeker-Hefte auch ein Disk-Editor für 
ProDOS (und DOS 3.3) erscheinen, der 
sich streng an den Standard hält mit der 
Folge, daß alle mit Hilfe von „Patches“ 
angepaßten Drives einschließlich der 
RAM-Disk benutzt werden können. 


Das hier vorgestellte Formatierungspro- 
gramm hat folgende Features: 

- Es arbeitet mit 35 bis 80 Tracks in jedem 
Slot (außer 0); 

— Die Neuformatierung einzelner Tracks ist 
möglich; 

— Es kann ermittelt werden, 
Tracks ein Drive „verträgt“; 

— Es läuft unter DOS 3.3 und unter 
ProDOS. 

Man beachte jedoch, daß nur eine Forma- 
tierung im engeren Sinne vorgenommen 
wird, d.h. es werden weder Boot- und 
Directory-Blocks (bei Pascal- und Pro- 


wieviele 


20 








FORMATTER 


Ein universelles Formatierungsprogramm 


DOS) noch Catalog-Spuren (bei DOS 3.3) 
angelegt. Das Formatierungsprogramm 
kann deshalb um eine Blockwrite- (Pascal, 
ProDOS) oder RWTS-Routine erweitert 
werden, die die bei dem jeweiligen Be- 
triebssystem erforderlichen System- 
Blocks oder -Spuren anlegt. 


Die Theorie 


Zur Einleitung der Theorie zunächst ein- 
mal die Speicherstellen (l/O-Adressen) 
des Controllers in tabellarischer Form: 
$C080-$C087: Phasen des Schrittmotors 
zur Armsteuerung 

$C088: Drive-Motor aus 

$C089: Drive-Motor an 

$C08A: Selektierung Drive 1 

$C08B: Selektierung Drive 2 

$C08C: Strobe des Data Latch 

$C08D: Load des Data Latch 

$CO8E: Setzt „Read“ von der Diskette 
$CO8F: Setzt „Write“ auf die Diskette 
Alle diese Speicherstellen sind hier für 
Slot O angegeben. Bei einem anderen Slot 
kommt noch die Slotnummer x 16 hinzu, 
also z.B. für das Anschalten eines Drives 
in Slot 6: 

LDX #$60 (= Slotnummer x 16) 

LDA $C089,X (= Motor an) 


Über das Ansprechen von Drive 1 oder 
Drive 2 entscheiden nur die Speicherstel- 
len $C0O8A und $CO8B. Alle folgenden 
Routinen finden mit dem durch diese bei- 
den Speicherstellen selektierten Laufwerk 
statt. 

Mit Ausnahme der Speicherstellen $C08D 
bis $CO8F ist das Ansprechen durch einen 
beliebigen Prozessor-Befehl, also z.B. 
LDA oder LDX, aber auch CMP oder BIT 
ausreichend. 


Ein Formatierungsprogramm besteht im 
allgemeinen aus vier Teilen: 


Parameterübergabe 
Zunächst müssen die Werte wie Start- 





Track, End-Track, Volume-Nummer usw. 
festgelegt werden. Diese Aufgabe wird 
durch das Applesoft-Programm namens 
FORMAT erledigt, das hier aus rein opti- 
schen Gründen etwas „professioneller“ 
ausgefallen ist. 


Selektierung und Anschalten des Ziel- 
Drives 

Bei einem „richtigen“ DOS fällt dieser 
Prozeß wesentlich komplizierter aus. So 
wird z.B. zuerst geprüft, ob noch ein ande- 
rer Drive an ist usw. Unser Formatierungs- 
programm beschränkt sich auf das An- 
sprechen der Speicherstelle $C089 (+ 
Slotnummer x 16).sowie die Selektierung 
von Drive 1 oder Drive 2. Danach folgt 
eine Verzögerung, damit sichergestellt 
wird, daß der Motor die Nenndrehzahl er- 
reicht. Zweckmäßigerweise wird innerhalb 
dieser Zeit der Arm rekalibriert. 


Schreiben eines Tracks 

Zum „normalen“ Schreiben eines Sektors 
(Blocks) bestehen hier mehrere gravieren- 
de Unterschiede: 

— Es wird „blind“ geschrieben, d.h. es 
kann naturgemäß vorher nicht durch Le- 
sen eines Address-Field geprüft werden, 
ob sich der Arm auf dem richtigen Track 
befindet. Der Arm wird einfach pro Track 
um eine Position nach innen bewegt. 

- Es muß nicht nur ein Data-Field, sondern 
auch jeweils vorher ein entsprechendes 
Address-Field geschrieben werden. 

— Das Data-Field bleibt leer und enthält nur 
Nullen ($96). 
Verifizierung des 
Tracks 

Nach dem Schreiben wird der Track noch- 
mals gelesen, um etwaige Übertragungs- 
fehler oder Diskettenschäden festzu- 
stellen. 


geschriebenen 


Der Aufbau einer Spur und die Einteilung 
eines Sektors in verschiedene Felder kann 
der Tabelle 1 entnommen werden. 


Peeker 7/85 





Das Programm 


Das Applesoft-Programm FORMAT wurde 
geschrieben, um die Parameterübergabe 
etwas komfortabler zu gestalten. Das Set- 
zen der einzelnen Parameter könnte 
ebenso durch diverse Pokes und ein an- 
schließendes BRUN von FORMAT.OBJ 
stattfinden. Diese Werte werden in der 
Page 3 übergeben und sind in Tabelle 2 
aufgeführt. 


Das Maschinenprogramm FORMAT.OBJ 
hat vier Einsprünge: 


8192 ($2000) — Drive Select, Motor an, 
Rekalibrierung auf Track 00; 

8195 ($2003) — Motor an; 

8198 ($2006) — Motor aus; 

8201 ($2009) — Arm auf Track xx, und 
Formatierung von Track xx bis Track yy mit 
anschließender Verifizierung. Das fast 
schon übliche Knirschgeräusch des Arms 
nach beendeter Formatierung entfällt, weil 
die Formatierung in aufsteigender, die 
Verifizierung dagegen in absteigender 
Richtung vorgenommen wird, d.h. bei ei- 
nem kompletten Durchgang befindet sich 
der Arm danach wieder über Track 00. 





TECHNIK 9.4 





Eine abschließende Warnung, falls Sie 
FORMAT.OBJ modifizieren wollen: Die 
Routine WRTRACK (ab $22BB) schreibt 
einen ganzen Track synchronisiert, d.h. in 
einem auf die Mikrosekunde abgestimm- 
ten Zeitverhältnis. Bereits das speicher- 
platzmäßige Verschieben kann u.U. zu un- 
lesbarem Müll auf der Diskette führen, 
wenn z.B. danach ein relativer Sprung 
(BNE ..) über eine Seitengrenze hinaus- 
geht, denn der 6502 hat leider die unange- 
nehme Eigenschaft, sich für derartige 
Sprünge eine Mikrosekunde mehr Zeit zu 
lassen. 


Tabelle 1: Aufbau einer Spur 
GAP 1: eine größere Anzahl von Autosyncs ($FF) 


Address-Field: Address-Field-Header ($D5 $AA $96) 
Volume-Nummer (1 Byte i.allg. $FE) 
Track-Nummer (1 Byte) 
Sektor-Nummer (1 Byte) 
Checksum (2 Bytes) 
Address-Field-Trailer ($D5 $AA $EB) 


GAP 2: mehrere Autosyncs ($FF) 


Data-Field: Data-Field-Header ($D5 $AA $AD) 
Information des Datensektors (341 Bytes) 
Checksum (2 Bytes) 
Data-Field-Trailer ($D5 $AA $EB) 


mehrere Autosyncs ($FF) bis zum Anfang des 
Address-Fields des nächsten Sektors 


Address-Field 
GAP 2 (weitere Sektoren) 
Data-Field 


GAP 3 des Sektors $®F 
GAP 1 


Das GAP 3 des Sektors $@F, also des letzten Sektors auf dem 
Track, reicht dann bis in das GAP 1 hinein, d.h. GAP 1 wird 
teilweise überschrieben. Somit ist gewährleistet, daß der 
gesamte Track definierte Information enthält. 


Tabelle 2: Übergabeparameter 


$0300 (768): Slot-Nummer * 16 (z.B. 96 für Slot 6) 
$0301 (769): Drive-Nummer (® oder 1) 
$0302 (778): Volume-Nummer (z.B. $FE) 
$0303 (771): Start-Track (z.B. 9) 
50304 (772): End-Track (z.B. 34) 
$0305 (773): Half-Track ($ß® = ganze Spur, 
$80 = Halbspur) 


FORMAT 

108 TEXT : HOME : INVERSE : PRINT SPC( 49): NORMAL : 
VTAB 1: HTAB 15: PRINT '" FORMATTER " 

105 REM 

11® IF PEEK (8192) = 4 * 16 + 12 THEN 13® 

115 VTAB 6: PRINT "FORMAT.OBJ wird geladen..." 

12® PRINT CHR$ (4)"BLOAD FORMAT.OBJ" 

125 REM *%*%*% Initialisierung und Parameter-Anzeige x%x** 

13® LOMEM: 1®240: REM Damit FORMAT auch unter ProDOS 
läuft! 

135 SL$ = '"6":DR$ = "2":VL$ = "FE": REM Slot, Drive, 
Volume 

149 ST$ = "B0":ET$ = "34":HT$ = "N": REM Anfang, Ende, 
Half-Track 

145 POKE 34,1: HOME 





Peeker 7/85 





POKE 33,34: POKE 32,4: REM Textfenster 

VTAB 4: PRINT "Slot: ";SL$;" Drive: ";DRS;" 
Volume: $"VL$ 

VTAB 6: PRINT "Start-Track: ";ST$;" End-Track: 
" r ET$ 

VTAB 8: PRINT "Software "; CHR$ (34) ;"Half-Track"; 
CHR$ (34);'" (J/N): ";HT$ 

POKE 32,9: POKE 33,4® 

REM x%*x** Restart x%x%*%* 

VTAB 12: HTAB 8: PRINT " <P> andere Parameter " 
VTAB 14: HTAB 6: PRINT "<CR> = Start <ESC> = 
Ende" 

REM *x*** Parameter/Start/Ende *x**x* 

VTAB 14: HTAB 20: GET X$ 

IF X$ = CHR$ (27) THEN HOME : POKE 34,9: END 

IF X$ = CHR$ (13) THEN 460: REM Start 

IF X$ < > "p" AND X$ < > "p" THEN 195 

REM x%*%*%* Parameter ändern **%*x* 

POKE 34,11: HOME : POKE 34,1 

RESTORE :N3$ = "":N4$ = """ 

A$ = SL$: GOSUB 305:SL$ = A$ 

A$ DR$: GOSUB 395:DR$ = A$ 
N3$ = "A'":NA$ = "F": REM Hexzahlen erlaubt 

A$ = VL$: GOSUB 330:VL$ = A$ 

N3$ = "":N4$ = "": REM Nur Dezimalzahlen 

A$ = ST$: GOSUB 339:ST$ = A$ 

A$ = ET$: GOSUB 339:ET$ = A$ 

IF VAL (ST$) < = VAL (ET$) THEN 275 

VTAB 12: HTAB 5: PRINT CHR$ (7);"Start-Track größer 
End-Track ??": GOTO 225 

IF VAL (ET$) -— VAL (ST$) < 48 THEN HT$ = "N": GOTO 
285 

A$ = HT$:N3$ = "Y":NA$ = N3$: GOSUB 305:HT$ = A$ 
VTAB 8: HTAB 34: PRINT HT$ 

POKE 34,11: HOME : POKE 34,1 

GOTO 18% 

REM *%*%* Subroutinen für Parameteränderungen %*%*% 
REM Input ein Zeichen 

GOSUB 389: REM Setzt Cursor 

GET X$: IF X$ = CHR$ (13) THEN X$ = A$: RETURN 
GOSUB AB: IF X$ = "" THEN 315: REM Check 

A$ = X$: PRINT A$;: RETURN 

REM Input zwei Zeichen 

GOSUB 389: REM Setzt Cursor etc. 

GET X$: IF X$ = CHR$ (13) THEN X$ = A$: RETURN 
GOSUB 409: IF X$ = "" THEN 349: REM Check 

Z$ = X$: PRINT X$;" "; CHR$ (8); 

GET X$: IF X$ = CHR$ (13) THEN A$ = "0" + Z$: GOTO 
375 

IF X$ = CHR$ (8) THEN HTAB H: P A$;: HTAB H: 
GOTO 349: REM Restart 

GOSUB 409: IF X$ = '"" THEN 355 

A$ = 2$ + X$ 

HTAB H: PRINT A$: RETURN 

REM Setzt Cursor und liest Min/Max 

READ V,H: VTAB V: HTAB H 

READ N1$,N2$: REM Min/Max 

RETURN 

REM UC-Übersetzung und Check 

X$ = CHR$ ( ASC (X$) - 32 * ( ASC (X$) > 96)) 

IF (X$ < N1$ OR X$ > N2$) AND (X$ < N3$ OR X$ > N4$) 
THEN PRINT CHR$ (7);:X$ = "" 

RETURN 

REM VTABs, HTABs und Min/Max für Parameter 


21 


22 





659 
655 
649 
645 
659 


655 


669 
665 
679 
675 
680 
685 
699 
695 
700 
705 
719 
715 
72® 
725 
73® 
735 
749 








DATA 4,11,"1",'"7": REM Slot 

DATA 4,22,'"1","2": REM Drive 

DATA 4,35,'"0","9": REM Volume 

DATA 6,18,"0","9'": REM Start-Track 

DATA 6,35,"9",'"9": REM End-Track 

DATA 8,34,'"N","N": REM Half-Track, "Y" ist N3$/N4$ 
REM x*%*%* Start FORMAT xx%*%* 

POKE 34,11: HOME : POKE 34,1: VTAB 12: HTAB 8 
PRINT "<ESC> = Funktion abbrechen" 

POKE 768,16 * VAL (SL$): POKE 769, VAL (DR$) - 
VL = 6: FOR X = 1 TO 2:X$ = MID$ (VL$,X,1) 

VL = 16 * VL + ASC (X$) - 48 - 7 x» ( ASC (X$) > 64): 
NEXT 

POKE 77®,VL: POKE 771, VAL (ST$): POKE 772, VAL (ET$) 
POKE 773, IF HT$ = "J" THEN POKE 773,127 

REM 8192 Drive on, Recal., Test Track ®® 

REM 8195 Drive on 

REM 8198 Drive off 

REM 8201 FORMAT (Start. .End-Track) 

VTAB 16: HTAB 1 

PRINT '"9123456789ABCDEF®123456789ABCDEFß1234567" ; 
PRINT " 

VTAB 18: HTAB 1: CALL 8192 

ERR = PEEK (767) 

IF ERR < > ® AND ST$ = "0" THEN 639: REM Disk neu 
=> FORMAT 

IF ERR = ® AND ST$ < > "0@" THEN 639: REM Disk 
teilweise formatiert 

CALL 8198: REM Drive aus! 

VTAB 21: PRINT CHR$ (7) 

IF ERR = ® THEN 585: REM Disk nicht neu 

PRINT "Track ®® unformatiert -" 

PRINT 

PRINT "Positionierung auf Track "ST$" unmöglich." 
GOTO 189 

VL = PEEK (768 + 9):VL$ = "": FrRRX=1T0 2 
VL$ = VL$ + CHR$ ((VL / 16) +48 +7 (VL / 16 > 
19)) 

VL = (VL - INT (VL / 16) * 16) * 16: NEXT 

VTAB 4: HTAB 35: PRINT VL$: VTAB 22 

PRINT "Diskette enthält Daten!" 

PRINT 

PRINT "Neu formatieren (J/N): "; 

GET X$: IF X$ < > "J" AND X$ < > "j" THEN PRINT 
"N"; : GOTO 189 

PRINT X$;: CALL 8195: REM Drive an 

POKE 34,20: HOME : POKE 34,1 

VTAB 22: PRINT "Disk wird formatiert..." 

VTAB 18: HTAB 1: CALL 8201 

VTAB 22: PRINT SPC( 3®8);: HTAB 1 

IF PEEK (767) = ® THEN PRINT "Formatierung 
fehlerfrei beendet.": GOTO 189 

PRINT CHR$ (7);: ON PEEK (767) GOTO 
669,680,690,710,739 

PRINT "Kein Laufwerk angeschlossen oder" 

PRINT 

PRINT "Diskette schreibgeschützt."; 

GOTO 189 

PRINT "Laufwerksgeschwindigkeit zu hoch." 

GOTO 189 

PRINT "Allgemeiner Fehler: Schlechtes Medium, ' 
PRINT 

PRINT "Klappe offen, etc."; 

GOTO 189 

PRINT "Armpositionierungsfehler -" 

PRINT 

PRINT "wahrscheinlich zu hohe Track-Numnmer."; 
GOTO 18® 

PRINT "- Abbruch." 

GOTO 18 

REM Arne Schäpers 4/85 


u | Be a u = 


Diverse Experimente mit Original-Disk-II- 
Drives und Duodisk-Drives (A. Schäpers 
benutzt andere Laufwerke) zeigten, daß 


bei 


mit FORMAT initialisierten DOS-3.3- 


und ProDOS-Disketten beim RWTS-Sek- 
tor-Write bzw. MLI-Block-Write der Zugriff 
doppelt solange dauert wie beim Read. 
Aus Zeitgründen war es mir bislang nicht 
möglich, die optimalen Werte für die Syn- 
chronisationsbytes zu finden. us 








ZUSATZ-KARTEN: 


V-24-Schnittstelle ............ 199,- Z-80-Karte ........2222222.. 139,- 
80-Zeichen-Karte m.Softswitch 236,- 16K-Language-Karte ......... 138,- 
Centronics-Karte von Epson für Graphik... . 210,- für Text... .145,- 
Centronics-Schnittstelle für 2 Drucker gleichzeitig ................... 129,- 
rommer incl. Software... .... 22:22 none eeeenenneenereee nenn 198,- 
uper-Eprommer 239 
belegt keinen En incl. Software für 2708-27128 ............ Pi 
0 0 U ESORHEARNRFENEERR auf Anfrage 
Floppy-Controller 
FDC 4 für alle Laufwerke °... .. .. 170,- Bausatz wielinks ............ 159,- 
Leerplatine wie oben incl. Pomu.Eprom .......:.2.22cneenneeeennnn 98,- 
DEREN BRAR 2:24:22 auf Anfrage 


Auto ee -Controller crnicontroien 


1x35bis2x8 Disk, keine Patch-Disk notwendig, Patch DOS 3.3, Diversi- 
DOS 2-C, 4-C (DD MOVER), Pascal 1.1, Pascal 1.2, CPM 2.2, Flak 
A ı 9 DE 6: Su De r Sie können die Laufwerke kleid mischen 98, = 


ey: für 15%" Slimline Laufwerk „2.2... n m nn 39,- 
Gehäuse für 2 5V4’ Slimline Laufwerke mit Platz für ein Netzteil ......... 159,- 
Gehäuse für 2 3%" Slimline Laufwerke mit Platz für ein Netzteil .......... 79,- 
IBM®-Gehäuse ......... men nennen nn 229,- 
Floppy-Kabel 34pol. für 2 Laufwerke mit Shugart-Bus ................. 35,- 


Preh Commander Keyboards 


Wir bieten Ihnen die Preh-Qualität auch für Apple. AK 88 Spez. mit Gehäuse, An- 


schlußkabel, Zehner-Tastenfeld, dt. Zeichensatz, endencsien für 

Gtrl-Codes und Rechenfunktionen ...... 2: 22mm nennen 339, v 
Preh Commander Keyboard AK 87, frei programmierbar 

bis zu 10 Ebenen, pro Taste bis zu250 Zeichen .............. nur 559, - 


TEAC 3%" Laufwerk FD 35 Foa5 _ 


Speicherkapazität 1 MB, (formatiert 640 KB) jetzt fürnur ........ 





TEACFD55A1x40 Track ..... 445,- TEACFD55B2x40 Track ...... 515,- 
TEACFD55E1x80 Track ..... 490,- TEACFD5S5SF2x80 Track ..... 560,- 
Philipps Slimline Floppy X3134 A, 2x80 Track solange Vorrat ......... nur 569,- 
SONY 3%" Laufwerk... ...:: 2. nennen nur 799,- 
Apple®-kompatibles Laufwerk incl. Gehäuse + Kabel ................ 599,- 


320 KB Laufwerk für Ic ................. 948,- 
148 KB Laufwerk für lIc.................. 698,- 


EPSON DRUCKER 


EPSON FX80 ............... 1670,- EPSON FX100 .............. 2159,- 
EPSONRX80 .............. 1079,- EPSONRX8O0FT ............ 1295,- 
Patch-Diskette für SONY 3%" Laufwerke - ermöglicht die Anpassung an Il/Ile und 
kompatible Computer .......... 80,- Manual vorab 15,-DM (wird beim Kauf 
der Patch-Diskette angerechnet). dto. für 5Y4" Laufwerke ........ 69,- 
Disketten Döb&Böd SS/DD 10St. 62,- 10 Disketten f. 31." Laufw........ 150,- 
Akustikkoppler AK 300 mit FTZ-Nr. incl. Netzteil ............222222.. 549,- 
Interface zum Anschluß von Laufwerken mit Shugart-Bus ............. 248,- 


Die NIONOPPY mit Zukunft: 


Speicherkapazität: 2 x 1 MByte for- 
matiert: 2x 640 kByte. Anschlußfertig Alt, 


mit PROM-residenter Patchsoftware 
für CP/M 2.2, Apple DOS 3.3, Diversi- 
DOS 2-C, 4-C (DD MOVER), Apple ' i 

Pascal 1.1, Pascal 1.2, Pro-DOS . er 
1.0.1, 1.1, 1.1.1 zum E -: n 
PIOISVON sun ananes 1640,- 


Low Power Version ........ 1740,- 


10 MB Winchester 


mit Software für DOS 3.3, CP/M 2.20, Pascal, Pro-DOS 





incl. Controler und Gehäuse . 22 re 4490 - 





Sonderangebot 
Disketten Döb&Böd 40 Track, SS/DD 10er Pack . .49,- 


Gesamt-Preisliste anfordern! Preise inclusive gesetzlicher Mehrwertsteuer. 


8 Js] NICH-1-Yaıgelalle- 


JäuKeyKyAY7 73:77] 
Tel. 02373/63159 


Holtewiese 2 
KYLIE TE L-TM 





Peeker 7/85 





G8/2 199994 


Es 


FORMAT. OBJ 


oo oı9u1AumD Hr 


Dr Hr 
SOO IV PN DH a 


NNDDVODVDDDDUDD 
SOVONIVD AU DH 


N WW 
N DDr 


BRARARBHKA Oo u a u 
DOBUDESOAANIDUSB 


* 


* vom Steuerprogramm gesetzte Werte 


. 
SLOT16 EQU 
DRIVENO EQU 
VOLNO EQU 
STRACK EQU 
ETRACK EQU 
HFLAG EQU 
” 

ERRNO EQU 
* 


$399 
$301 
$392 
$303 
5304 
$395 


$2FF 


‚ Slot-Nr. * 16 

; Drive: ® oder 1 

; Volume-Nummer 

Start-Track 

End-Track 

"Half-Track'" Flag: $ß® oder $8® 


; Fehlernummer für BASIC 


* vom Programm benutzte Speicherstellen 


* 
ADDRBASE EQU 
SECFOUND EQU 
TRKFOUND EQU 
VOLFOUND EQU 
” 

TRNOW EQU 
TRWANT EQU 
” 


$396 
$397 
$308 
$309 


$30A 
$30B 


‚ Basis der von RDADDR 


gesetzten Speicherstellen: 


; Volume/Track/Sektor 
‚ und CHECKSUM in absteig. Folge 


’ 


"Track jetzt" 
"Track gewünscht" 


* Speicherstellen des Controllers 


* 
ARMBASE EQU 
DRVOFF EQU 
DRVON EQU 
DRVSEL EQU 
STROBE EQU 
DATA EQU 
SREAD EQU 
SWRITE EQU 
* 


* benutzte Speicherstellen 


* 
ZVOLNO EQU 
SECTOR EQU 
ZTRACK EQU 
* 

ORG 
* 

JMP 

JMP 

JMP 

JMP 


LDA 
STA 
LDA 
STA 
JSR 
JSR 
JSR 
JSR 


* 
NOTNEW 


$co8p 
$c988 
$c989 
$CO8A 
$cdsc 
$CQd8D 
$CO8E 
$CO8F 


$45 
$46 
$47 


$2009 


START 
DRIVEON 
DRIVEOFF 
FORMAT 


#+$EF 
DELAY1 
+$D8 
DELAY2 
SELECT 
RECAL 
COUNTUP 
RDADDR 


VOLFOUND 
VOLNO 

+9 

+9 
TRKFOUND 
STl 
ERRNO 


Phasen-Adressierung 


; Motor off 

; Motor on 

 $8A: Drive 1 / $8B: Drive 2 
;‚ DATA IN bei READ 

; DATA OUT bei WRITE 


setzt "READ" 
setzt "WRITE" 


in der Zeropage 


; Timing in WRITE 


‚ Einsprungvektoren für BASIC 


festgelegte Werte 
zum Hochzählen für die 


‚ Startzeit des Motors 


‚ Drive an 


: Arm zurück auf Track ®® und 


"delay'", bis Motor auf Touren 
lesen eines Address-Fields 
ging gut — keine neue Disk! 


für BASIC: neue Disk 


; Drive läuft 


; auf Track 99? 
;‚ darf eigentlich nicht passieren 


für BASIC: bereits formatiert 


; Drive läuft 





203D: 
2BSF: 
2042: 
2044: 
2047: 


2DAA: 
204AD: 
2D4AF: 
2052: 
2054: 


2055: 
2058: 
205B: 
205E: 
2OSF: 
2069: 
2063: 
2064: 
2067: 


2068: 
206B: 
2D6E: 


2D6EF: 
2072: 
2073: 
2075: 
2078: 
2DTA: 
207D: 
2089: 
2082: 
2085: 
2086: 
2089: 


2D8A: 
208D: 
208E: 
2099: 
2093: 


2095: 
2098: 
2099: 
209B: 


209E: 
20Al: 
2DAA: 
2DAG: 


AD 
48 
Ag 
8D 
Ag 
8D 


Ag 
8D 
68 
8D 
69 


AD 
18 
69 
8D 
Dp 


AD 
38 
EI 
8D 


0 
89 
8E 


Ol 


8A 


v1) 
88 


DA 


01 
DB 
09 


DA 


91 
DB 


DA 
05 
01 


a 


21 
20 


21 


20 


03 
co 
co 
03 
co 


03 
co 


03 


93 


03 
20 


03 
03 


03 


03 


03 


03 


03 
03 


DRIVEON LDA 
STA 
LDA 
STA 
JSR 

. 

COUNTUP BIT 
BPL 
JSR 
BEQ 

MOTORON RTS 

. 

SELECT LDX 
LDA 
LDA 
TXA 
CLC 
ADC 
TAX 
LDA 
RTS 

= 

DRIVEOFF LDX 
LDA 
RTS 


RECAL LDA 
PHA 
LDA 
STA 
LDA 
STA 
JSR 
LDA 
STA 
PLA 
STA 
RTS 

%* 

STEPIN LDA 
CLC 
ADC 
STA 
BNE 

- 

* 

STEPOUT LDA 
SEC 
SBC 
STA 

» 

MYSEEK LDA 


CMP 
BEQ 


* 
SEEKABS LDA 
STA 
SEC 


#+$EF 
DELAYl 
#+$D8 
DELAY2 
SELECT 


DELAY2 
MOTORON 
ARMDELAY 
COUNTUP 


SLOT16 
DRVON,X 
SREAD,X 


DRIVENO 


DRVSEL,X 


SLOT16 
DRVOFF,X 


TRWANT 


+00 
TRWANT 
+$59 
TRNOW 
MYSEEK 
+00 
TRNOW 


TRWANT 


TRNOW 


#1 
TRWANT 
MYSEEK 


TRNOW 


#1 
TRWANT 


TRNOW 
HFLAG 
MS1 


TRNOW1 
TRWANT 
TRNOW 
HFLAG 
MS2 


TRWANT1 


TRNOW1 
ARMSET 


TRNOW1 
TRNOW2 


; Motor-on-DELAY 


;‚ Drive on 


; bereits hochgezählt? 


’ 


’ 


’ 


win u 


zählt DELAY hoch 
"always! 


‚ Motor on 


"READ MODE" 


Ö oder 1 


Drive auswählen 


der gewünschte Track wird 
gespeichert, 
"Track jetzt" auf $5® gesetzt 


; und "Track gewünscht" auf 


..... 


Folge: Der Arm wird auf 


Track ®® zurückgezogen 


Restore 


l Track nach innen 


"always! 


l Track nach außen 


bei Standard-Drives 

müssen pro Track zwei 
Armbewegungen ausgeführt 
werden, bei 8®-Track-Drives 
nur eine 

hier sollte der Arm 
hinterher sein 


Ziel-Track 


bereits auf dem Track 














174 


G8/2 199994 


20C5: 
2008: 
20CA: 
2ÖCC: 
2ÖCF: 
20D1: 


20D4: 
20D5: 
20D8: 


20DB: 
20DC: 
20DF: 
2DE2: 
20E5: 


20ET7: 
20DEA: 
2DEC: 
20ED: 
20F®: 
20Fl: 
20FA: 


20FS5: 
2OFT: 
20F9: 
20FA: 
2DFC: 
ZOÖFF: 
2101: 
2194: 
2105: 
2107: 
2109: 


210F: 
2112: 
2119; 
2118: 
211A: 
2l1D: 
2129: 
2123; 
2125: 
2127: 
2129: 
212C: 
212F: 
2132: 
2134: 
2187: 


2139: 
2l3B: 
213E: 
2141: 
2143: 
2146: 
2149: 


ED 
Fo 
BP 
EE 


CE 


38 
20 
20 


18 


20 
29 
Fo 


AD 
29 
2A 
OD 


BD 
6% 


A9 
A2 
CA 


EE 
Do 


38 
E9 
D® 
60 


DA 


05 
OB 


dB 


F5 


dc 


F5 
D7 


DB 
03 


nn) 
80 
30 
1l 
FD 
OD 
03 
DE 


Bl 
EE 


21 


21 


20 
20 


21 
20 
20 


21 


93 
co 


A 


21 


03 
03 
20 


Bi. 
21 
22 


21 
03 
03 


20 


2 
21 


21 
03 
93 


138 
139 
149 
141 
142 
143 
144 
145 
146 
147 
148 
149 
159 
151 
152 
153 
154 
155 
156 
157 
158 
159 
16® 
161 
162 
163 
164 
165 
166 
167 
168 
169 
178 
171 
172 
173 
174 
175 
176 
177 
178 
179 
189 
181 
182 
183 
184 
185 
186 
187 
188 
189 
19 
191 
192 
193 
194 
195 
196 
197 
198 
199 
200 
201 
202 
203 
204 
205 
206 


MOVEIN 


MOVEOUT 
* 
PHASEON 


%* 
SETARM 
SETARM2 


ARMSET 

” 
ARMDELAY 
DLY1 
DLY2 


DLYS3 


* 
TRWANT1 
TRNOW1 
TRNOW2 
* 
DELAY1 
DELAYZ 
* 
FORMAT 


WRLOOP 


* 
VERIFY 


SBC 
BEQ 
BCS 
INC 
BCC 
DEC 


SEC 
JSR 
JSR 


CLC 
LDA 
JSR 
JSR 
BEQ 


LDA 
AND 
ROL 
ORA 
TAX 
LDA 
RTS 


LDA 
LDX 
DEX 
BNE 
INC 
BNE 
INC 
SEC 
SBC 
BNE 
RTS 


DS 
DS 


DS 
DS 


EQU 
LDA 
STA 
JSR 
LDA 
JSR 
JSR 
JSR 
LDA 
BCS 
LDA 
JSR 
LDA 
CMP 
BEQ 
JSR 
BEQ 


LDA 
JSR 
JSR 
BCS 
JSR 
LDA 
CMP 


TRWANTI 
DLY1 
MOVEOUT 
TRNOW1 
PHASEON 
TRNOW1 


SETARM 
ARMDELAY 


TRNOW2 
SETARMZ 
ARMDELAY 
SEEKABS 


TRNOW1 
+03 


SLOT16 
ARMBASE,X 
+$30 

#$11 

DLY2 
DELAY1 
DLY3 
DELAY2 


+01 
DLY1 


Hr 


x 
STRACK 
TRWANT 
MYSEEK 
#$17 
PRTRACK 
GETESC 
WRTRACK 
#1 
VFEXIT 
++ 
PRTRACK 
TRNOW 
ETRACK 
VERIFY 
STEPIN 
WRLOOP 


+$16 
PRTRACK 
VFTRACK 
VFERR 
GETESC 
TRNON 
STRACK 


.. 


letztes DELAY zum "auspendeln" 


"always" 


Phase zum Ziel-Track 
hin anschalten 


danach die alte 
Phase aus 


"always! 
Einsprung: neue Phase on 


Einsprung: alte Phase off 
Carry bestimmt, ob "on/off" 


adressiert Stepper-Motor 


fester Wert 


für Motor on: Hochzähler 


; Scratches für SEEKABS 


Motor-on-DELAY 


setzt Arm auf Start-Track 
inverses "W" 


Test auf Abbruch 
"WRITE PROTECTED"? 

mit ERR#l 

Anzeige: WRITE beendet 


letzter Track fertig? 


nächster Track 
"always" 


inverses '"V" 


Test auf Abbruch 


letzter Track? 


* 
VDONE 
VFEXIT 


* 
PRTRACK 


LIMIT 


* 
GETESC 


NOTESC 
* 
VFTRACK 


VDONE 
STEPOUT 
VERIFY 

#3 
SECTORS+15 
VFEXIT 


SECTORS+ßB ; 


VFEXIT 
#2 
VFEXIT 


#9 
ERRNO 
DRIVEOFF 


($28),Y 


$c009 
NOTESC 
$co19 
#+$9B 
NOTESC 


#5 
ERRNO 
DRIVEOFF 


* 

#9 

+#$0F 
SECSLEFT 
SECTORS,X 


VFT1 


#33 
VFTRIES 


RDADDR 
VFT4 
VFTRIES 
VFT2 


TRKFOUND 
TRNOW 
VFT5 


=4 
VFEXIT 


SECFOUND 
SECTORS,X 
VFT3 
VFSECTOR 
VFT3 


ok. 


"always" 


; Annahme: allgemeiner Fehler 
‚ Sektor $F ok? 


nein 
Sektor $® ok? 


‚ Sektor $F ok, 
‚ Sektor $® nicht: ERR#2 


; RTS von da zu BASIC 


; Character 


innerhalb der Zeile 


so lange, bis im Bereich 99-$27 


"Print" 


; Keyboard 


; Keyboardstrobe löschen 


ansonsten wird die Return- 
adresse heruntergeholt 
ERR#5: Abbruch 


; bei <ESC>: zu BASIC 


"noch" 16 Sektoren übrig 


‚ das Array "gefundene Sektoren" 
; wird gelöscht 


Zähler: jeder Sektor darf 


‚ maximal 2mal gelesen werden 


aus 


richtiger Track? 


‚ Armposition falsch: 


zu hohe Tracknummer? 


; ERR#4: Positionsfehler 


gesetzt von RDADDR 


schon gehabt 


‚ Daten verifizieren 





gg/1 Jeyoad 


GG 


21CD: 
21D®: 
21D2: 
21D5: 
21D8: 


21DA: 
21DC: 
21DF: 
21E®: 


Z1F3: 
2lF5: 
21F8: 


2lFB: 
lFC: 
21FE: 
2201: 


2203: 
2206: 
2208: 
2ARDA: 
2R2DC: 
22OD: 
2219: 
2212: 
2214: 
2216: 
2218: 
221B: 
221D: 
221F: 
Berl: 
2223: 
2226: 
2229: 
ZZZB: 
Z22C: 
RZZF: 
ARS2: 
2234: 
2aR3T: 
AZSA: 
ARSD: 
22S3E: 
2249: 
2241: 


2243: 
2246: 
2248: 
ZZAA: 
ZZAC: 
ARAD: 
2259: 
2252: 
2254: 


2256: 
22ST: 


2258: 


AE 


Ad 
sc 
AE 


c8 
Do 
EE 
Fo 


BD 
19 
c9 
D® 
EA 
BD 
19 
c9 
D® 
AB 
BD 
10 
c9g 
D® 
A9 
8D 
BD 
10 
2A 
8D 
BD 
19 
2D 
99 
4D 
88 
19 


D9 


19 
cg 
DO 
EA 
BD 
19 


D9 


18 
69 


38 


07 
80 
E3 
E2 
D® 


AA 
6B 


FC 
5A 
11) 


95 
5A 
55 


Sc 
FB 
D5 
EF 


5C 
8C 
FB 
5C 
D6 
5B 


E3 


15 


FB 
DE 
dc 


8C 
FB 
AA 
02 


D3 


21 
> 


21 


22 
03 


22 


c9 


co 


cp 


22 
cp 


22 
cp 


22 
#3 


co 


276 
277 
278 
279 
280 
281 
282 
283 
284 
285 
286 
287 
288 
289 
299 
291 
292 
293 
294 
295 
296 
297 
298 
299 
309 
301 
302 
303 
304 
305 
306 
307 
308 
309 
319 
311 
312 
313 
314 
315 
316 
317 
318 
319 
320 
321 
322 
323 
324 
325 
326 
327 
328 
329 
330 


332 
333 
334 
335 
336 
337 
338 
339 
340 
341 
342 
343 
344 


- 
VFTRIES 
SECSLEFT 
SECTORS 
5 

RDADDR 


- 
ADTRY1 


” 
ADLD1 


ADTRY2 


ADLD2 


ADLD3 


ADDT® 


ADDT1 


ADDT2 


ADTL2 


ADERR 


LDX 
LDA 
STA 
DEC 
BPL 


LDA 
JSR 
CLC 
RTS 


DS 
DS 
DS 


EQU 
LDY 
ST! 
LDX 


INY 


SECFOUND 
+$89 
SECTORS,X 
SECSLEFT 
VFT3 


; noch Sektoren übrig? 


#1. 
PRTRACK 


J 
16 


* 

#$FC 

ADTRIES 

SLOT16 ; Slot-Numnmer 


BNE _ADLD1- ————— 


INC 
BEQ 


LDA 
BPL 
CMP 
BNE 
NOP 
LDA 
BPL 
CMP 
BNE 
LDY 
LDA 
BPL 
CMP 
BNE 
LDA 
STA 
LDA 
BPL 
ROL 
STA 
LDA 
BPL 
AND 
STA 
EOR 
DEY 
BPL 
TAY 
BNE 


BPL 
CMP 
BNE 
NOP 
LDA 
BPL 
CMP 
BNE 


CLC 
RTS 


SEC 


ADTRIES 
ADERR 


STROBE,X 

ADLD1 

+#$D5 ; $D5 
ADTRY1 


STROBE,X 

ADLD2 

#+$AA » $AA 
ADTRY2 

+03 

STROBE,X 

ADLD3 

+$96 ; $96 
ADTRY2 

#500 

ADCHECK ; CHECKSUM 
STROBE,X 

ADDTI1 


ADTEMP ‚ erste Hälfte des Bytes 
STROBE,X ; zweite Hälfte 

ADDT2 

ADTEMP 

ADDRBASE,Y ; Vol-Nr./Track/Sector 
ADCHECK 


ADDT® 
zusammen mit CHECKSUM = 9? 
ADERR 


ADTL1 
+$DE ; $DE 
ADERR 


STROBE,X 

ADTL2 

#+$AA ; $AA 
ADERR 


- 
ADTRIES 
ADCHECK 
ADTEMP 

* 
VFSECTOR 


RDTRY1 


RDLD1 


RDTRY2 


* 


RDCHECK 


WRTRACK 


RTS 


DS 
DS 
DS 


EQU 
LDX 
LDY 
DEY 
BEQ 
LDA 
BPL 
CMP 
BNE 
NOP 
LDA 
BPL 
CMP 
BNE 
LDY 
LDA 
BPL 
CMP 
BNE 


LDA 
BPL 
CMP 
BNE 
DEY 
BNE 
LDA 
BPL 
CMP 
BNE 
INY 
BNE 


LDA 
BPL 
CMP 
BNE 


LDA 
BPL 
CMP 
BNE 
NOP 
LDA 
BPL 
CMP 
BNE 


CLC 


* 
SLOTI16 
+$29 


RDERR 
STROBE,X 
RDLD1 
+$D5 
RDTRY1 


STROBE,X 
RDLD2 
#$AA 
RDTRY2 
+$56 


’ 


’ 


Slot-Nummer 
"Retries" 


$AA 


STROBE,X — 


RDLD3 
#$AD 
RDTRY2 


STROBE,X 
RDDT1 
+$96 
RDERR 


RDDT1 
STROBE,X 
RDDT2 
+$96 
RDERR 


RDDT2 


STROBE,X 
RDCHECK 
+$96 
RDERR 


STROBE,X 
RDTL1 
+$DE 
RDERR 


STROBE,X 
RDTL2 
#$AA 
RDERR 


” 
SLOT16 
DATA,X 
SREAD,X 
NOTWPROT 


WREND 


’ 


’ 


’ 


’ 


$AD 


alle Sektoren sind leer, d.h. 
enthalten nur $96 


zweiter Teil: "normale" 


; die CHECKSUM ist 


ebenfalls $96 


Test auf "WRITE PROTECTED" 


"WRITE PROTECTED" ! 
"always" 














95 


G8/2 199994 


* 
NEXTSEC 


* 
WRSECTOR 


- 
ADDRLD 


VOLNO 
ZVOLNO 


#$ FF 


SWRITE,X 
STROBE,X 


+09 
SECTOR 
TRNOW 
ZTRACK 


#+$FF 
+$89 


WRSECTOR 


SECTOR 
#$19 
#14 
NEXTSEC 


SREAD, X 


STROBE,X 


509 
WRBYTE3 
500 
3309 


$00 
WRBYTEl 


ADDRLD 
GAP13 


$309 
+$D5 
WRBYTE3 
#+$AA 
WRBYTELl 
+$96 
WRBYTEL 


ZVOLNO 
WRDB 
ZTRACK 
WRDB 
SECTOR 
WRDB 
VOLNO 
ZTRACK 
SECTOR 


#+$AA 
DATA,X 


STROBE,X 


#+$AA 
WRBYTEI 


+$DE 
WRBYTEL 
+$AA 
WRBYTELl 
+$EB 
WRBYTELl 


#+$ FF 


für Timing in WRITE 


ab jetzt: Zeit läuft! 
erstes Sync-Byte 


Timing... 


Syncs in GAP 1 


letzter Sektor fertig? 
16 Syncs zwischen den Sektoren 


zurück auf "READ MODE" 


Aufruf mit Acc = $FF 


GAP 1 und GAP 3: Y-Reg. 


; bestimmt die Anzahl der 
; Syncs 


;‚ 4 usec 
; $D5 


; $AA 


; $96 


Volume-Nummer 


; Track-Nummer 


Sektor-Nummer 


und CHECKSUM, erster Teil 


CHECKSUM, zweiter Teil 


; $DE 


> $AA . 


$EB 


erstes Sync zwischen 





2391: 
2359: 
235B: 
235C: 
235E: 
2361: 
2362: 
2364: 


2366: 
2369: 
236B: 
236E: 
2379: 
2373: 
23193 


2378: 
237A: 
237D: 
2ST7F: 
2381: 
2384: 
2385: 
2388: 
2389: 
238B: 


238D: 
2399: 
2393: 
2394: 
2396: 


2398: 
23: 
239D: 


23AP: 
23A2: 
2345: 
2347; 
23AA: 
23AC: 


23AF: 
23Bl: 
23B4: 


23B6: 
23B8: 


23BB: 
23BC: 
23BD: 
2SBE: 
2509: 
2503: 
23C6: 
25C7: 
23C9: 
2SCB: 


25CD: 
2SCE: 
2SCF: 
23DP: 
23D3: 
23D6: 


18 
48 
68 
9D 
DD 
69 


07 
09 


00 
CD 


02 
F6 


99 


D® 
AA 
CD 
AD 
CD 


96 
CD 
55 
2® 
9 


D® 


F6 


nn) 
D® 


02 
F5 


09 
96 


D® 


DE 
CD 
AA 
CD 
EB 
CD 


46 
ul) 
01) 


FF 
Dp 


AA 
sc 
AA 


46 
46 


8D 
Sc 


983 Bytes 


23 


03 
23 
23 


23 


253 


03 


23 


03 
25 


03 


25 


23 
23 


25 


03 


25 


cp 
c® 


co 
co 


486 
487 
488 
489 
490 
491 
492 
493 
494 
495 
496 
497 
498 
499 
599 
501 
592 
593 
594 
505 
506 
597 
508 
509 
51® 
511 
512 
513 
514 
515 
516 
517 
518 
519 
520 
521 
522 
523 
524 
525 
526 
527 
528 
529 
539 
531 
532 
533 
534 
535 
536 
537 
538 
539 
549 
541 
542 
543 
544 
545 
546 
547 
548 
549 
559 
551 
552 
553 
554 


GAP2 


* 
DATALD 


WRDAT1 


. 
WRDATZ 


- 
DATATL 


WRDB 


. 
WRBYTEl 
WRBYTE2 


WRBYTE3 


LDY 
BIT 
NOP 
BIT 
JSR 
DEY 
BEQ 
BNE 


BIT 
LDA 
JSR 
LDA 
JSR 
LDA 
JSR 


LDA 
JSR 
LDY 
BIT 
BIT 
NOP 
JSR 
DEY 
BNE 
BIT 


BIT 
JSR 
INY 
BEQ 
BNE 


BIT 
LDA 
JSR 


LDA 
JSR 
LDA 
JSR 
LDA 
JSR 


INC 
BIT 
BIT 


LDA 
JMP 


NOP 
TAY 
LSR 
ORA 
STA 
CMP 
TYA 
ORA 
INC 
DEC 


CLC 
PHA 
PLA 
STA 
CMP 
RTS 


NTSDXU 
D 


#7 
309 


509 
WRBYTEl 


DATALD 
GAP2 


$399 
#+$D5 
WRBYTE3 
#$AA 
WRBYTEL 
#$AD 
WRBYTELl 


+$96 
WRBYTELl 
+$55 
$09 
$399 


WRBYTES 


WRDAT1 
309 


$309 
WRBYTES3 


DATATL 
WRDAT2 


$309 
+$96 
WRBYTE3 


#+$DE 
WRBYTELl 
#$AA 
WRBYTELl 
+$EB 
WRBYTELl 


SECTOR 
$309 
$09 


#$ FF 
WRBYTES 


#+$AA 
DATA,X 


STROBE,X 


#$AA 
SECTOR 
SECTOR 


DATA,X 


STROBE,X 


. 
’ 


Address—- und Data-rFlelc 


; + 7 weitere Syncs 


.. 


.. 


“. 


“. 


4 usec 
$D5 


$AA 

$AD 

ab hier weicht das Verfahren 
stark von DOS 3.3 ab! 


die ersten $55 Bytes 


("zusätzliche") 


die nächsten $1ß® Bytes 
("normale") 


"CHECKSUM'" 


$DE 
$AA 


$EB 


insgesamt 9 usec 
JMP(!) folgt 


; erstes Sync nach Data-Field, 


für Zeit in Haupt-Loop 


für die zweite Hälfte 


zweite Hälfte 
5 usec 
5 usec 


usec 
usec 
usec 
usec 
usec 


DB OB Oo 








ZN MAGAZIN FÜR APPLE-COMPUTER 


Ja, ich möchte peeker abonnieren. 

Liefern Sie mir peeker ab Ausgabe .................- (1985 erscheinen 11 Ausgaben — 
1 Doppelnummer) zum Jahresbezugspreis von DM 72,- (Inland) incl. MwSt. Die 
Lieferung erfolgt frei Haus. Porto, Verpackung und Zustellgebühren übernimmt 
der Verlag. Der Jahresbezugspreis für das Ausland beträgt DM 72,- incl. MwSt., 
zzgl. DM 16,80 Versandspesen. 


® 
E 
F 


Ich wünsche jährliche Berechnung durch: 
[_] Verlagsrechnung [_] Abbuchung von meinem Bank- 
bzw. Postscheckkonto 


Bank / PschA 
Bankleitzahl Kto.-Nr. 


Datum Unterschrift 


TIPP HPENER 94 


MAGAZIN FÜR APPLE-COMPUTER 


a Abo 










Bitte senden Sie mir gegen Rechnung folgende Bücher: 


-Shop 





Datum Unterschrift 


Für in ıterlag. A EEI 
. Folgende D Dis etten a | 
a ag best: | 


a Buch 





MAGAZIN FÜR APPLE-COMPUTER 


© Bitte senden Sie mir 

| e gegen Rechnung folgende Apple-Programme: 

oO U] Peeker-Sammeldiskette, einzeln U] Apple DOS 3.3, Begleitdiskette, DM 28,— 

Disk# ____—_, Disk# DJ Apple ProDOS, Band 1, Begleitdiskette, 

Se Disk# ____—_, Disk# DM 28,— 

a Preis je Disk DM 28,- (einzeln) DI en Band 2, Begleitdiskette, 
5 U] Peeker Sammeldiskette, OD) Apple Assembler, Begleitdiskette, DM 28,- 
eo im Fortsetzungsbezug OD) ProDOS-Editor 1.0, Programm, DM 98,- 

ab Disk # ___— U) MMU 2.0, Programm, DM 98,- 

(Mindestbezug 6 Disketten) OD INPUT 2.0, Programm, DM 98,- 

Preis je Disk DM 20,- OD) Softbreaker 1.0, Programm, DM 48,- 

OD) DB-Meister, Programm, DM 290,- 

| OÖ OD] Superplot, Programm, DM 48,- 

42) [I Superquick, Programm, DM 48,— 

E Datum Unterschrift 








Firma 


. Abteilung 


Vertrauensgarantie: 

Ich habe davon Kenntnis genommen, daß ich die Bestellung 
schriftlich durch Mitteilung an den Dr. Alfred Hüthig Verlag, 
Postfach 102869, 6900 Heidelberg 1 innerhalb von 

7 Tagen widerrufen kann. Zur Fristwahrung genügt die 

| rechtzeitige Absendung des Widerrufs (Datum des 
Poststempels). 


Datum 


Unterschrift 

Verlagshinweis: 

Das Abonnement verlängert sich zu den jeweils gültigen 

Bedingungen um ein Jahr, wenn es nicht 2 Monate vor 
Jahresende schriftlich gekündigt wird. 





Karte bitte vollständig ausfüllen 





Karte bitte vollständig ausfüllen 


Vorname, Name 


Firma 


Straße 


Telefon mit Vorwahl 














POSTKARTE 


peeker 
Leserservice 


Postfach 10 28 69 
6900 Heidelberg 1 


POSTKARTE 


peeker 
Versandbuchhandlung 


Postfach 10 28 69 


6900 Heidelberg 1 


POSTKARTE 


peeker 
Softwareabteilung 


Postfach 10 28 69 


6900 Heidelberg 1 


INPUT 2.0 


Ein Bildschirm- 
Maskengenerator 


für DOS 3.3 und ProDOS 

vonU. Stiehl 

1984, Diskette und Manual, DM 98,- 

ISBN 3-7785-1021-5 

„input 2.0° liegt wahlweise in der Bank 1 
oder Bank 2 der Language Card und wird 
durch einen kurzen Driver in den unteren 
48K aufgerufen. 

Für jedes Feld der Bildschirmmaske lassen 
sich u.a. definieren: Feldiänge (bis zu 255 
Zeichen) — Vtab — Htab — Datentyp (insge- 
samt 8 Typen) - Scrollflag (starre oder dyna- 
mische Maske) — Ctriflag — Füllflag — Lösch- 
flag — Bildschirmflag (40- oder 80-Z-Darstel- 
lung). Innerhalb eines Eingabefeldes besteht 
jeder denkbare Redigierkomfort (Insert, De- 
lete, Rubout, Restore usw.). 
Gerätevoraussetzung: Apple Ile oder Ilc; fer- 
ner Apple Il+ im 40-Zeichenmodus 


MMU 2.0 

Memory Managements 
Utilities 

für die Apple lie 64K-Karte 

DOS 3.3 (und ProDOS) 


von U. Stiehl 


1984, Diskette und Manual, DM 98, - 
ISBN 3-7787-1023-1 


Insgesamt enthält die neue „MMU 2.0"- 
Diskette über 25 Programme, die neue 
Einsatzmöglichkeiten für die Extended 80 
Column Card (erweiterte 80-Z-Karte = 
64K-Karte für den Apple Ile) erschließen. 
Ein Teil der Programme laufen auch auf 
dem Apple Ii Plus, doch ist „MMU 2.0" 
primär für 64K-Karte-Besitzer gedacht. 


Gerätevoraussetzung: Apple Ile mit 64K- 
Karte oder lic 


Softbreaker 1.0 


Eine softwaremäßige Interrupt-Utility 
für die Apple lie 64K-Karte 


vonU. Stiehl 


1984, Diskette und Manual, DM 48, — 
ISBN 3-7785-1022-3 


Softbreaker ist ein Assemblerprogramm, mit 
dessen Hilfe Programme, die sich von der 
64K-Karte (= Extended 80 Column Card für 
den Apple lle) starten lassen, unterbrochen, 
gespeichert, geladen und exakt an der Stelle 
der Unterbrechung fortgeführt werden kön- 
nen. Dadurch ist es auch möglich, Siche- 
rungskopien von sogenannten kopierge- 
schützten Programmen herzustellen. 

Mit Softbreaker unterbrochene Programme 
werden komplett, d. h. die ganzen 64K ein- 
schließlich Language Card, in nur ca. 11 Se- 
kunden auf einer formatierten Diskette gesi- 
chert. 

Gerätevoraussetzung: Apple Ile mit 64K- 
Karte 


Hüthig Software Service, 
Postfach 10 28 69, D-6900 Heidelberg 





Haben Sie Ihren Monitor schon „80-Zei- 
chen-getestet“? Was bei einer Darstel- 
lung mit 40 Zeichen pro Zeile noch ein 
Genuß für das Auge ist, kann bei 80 Zei- 
chen bereits zur Qual werden. Ein durch- 
schnittliches Fernsehgerät zeigt waag- 
rechte Tropfen und senkrechte Fädchen, 
ein Gleichheitszeichen mit einem Minus- 
symbol darunter entspricht dem großen E, 
die an den Ecken angeknabberten D er- 
scheinen wie O, Kleinbuchstaben sind 
noch schlechter zu erkennen. Qualitativ 
mittelmäßige Monitore lassen immerhin im 
Normalmodus ein einigermaßen ermü- 
dungsfreies Lesen zu, doch selbst gute 
bis sehr gute Monitore enttäuschen späte- 
stens bei inverser 80-Zeichendarstellung. 
Senkrechte Linien erscheinen nur hauch- 
dünn. 


Wenn Sie Ihren Geldbeutel nicht mit dem 
Kauf eines teuren Spitzenmonitors bela- 
sten wollen, dann schlage ich Ihnen meine 
preiswerte Lösung vor. Ändern Sie den 
Zeichensatz der 80-Zeichenkarte. 
Schreibt man die senkrechten Linien über- 
proportional dick auf den Bildschirm, so 
erscheinen diese auf Grund der Unzuläng- 
lichkeiten des Systems gerade so breit wie 
die nicht geänderten, waagrechten Linien. 
Das im folgenden beschriebene Pro- 
gramm BITEDITOR unterstützt Sie beim 
„Umstricken“ Ihres Zeichensatzes. 


Mein ursprünglicher Wunsch war es, das 
an meiner Arbeitsstelle viel benutzte Multi- 
plan auf den Apple-Il-Rechnern mit 80 
Zeichen pro Zeile optisch so ansprechend 
laufen lassen zu können wie mit 40 Zei- 
chen, nämlich mit der Möglichkeit der in- 
versen Darstellung. Das Feld, in welches 
Sie bei Multiplan gerade schreiben, er- 
scheint invers. Bei 80-Zeichenkarten ohne 
inversen Zeichensatz wird das bearbeiten- 
de Feld durch Größer/Kleinersymbole ein- 
gegrenzt, welche aber Raum der Nachbar- 
felder beanspruchen und dort ein Zeichen 
unterdrücken. Besonders bei einigerma- 
Ben gefüllten Tabellen müssen Sie das so 
gekennzeichnete Arbeitsfeld erst mühsam 
suchen, während das inverse Feld sofort 
ins Auge sticht. Nach der Modifikation er- 
gibt sich durch die hardwaremäßige Um- 
schaltung zwischen deutschem und ame- 
rikanischem Zeichensatz für Multiplan ein 
weiterer Vorteil. Texte können mit dem 
deutschen Zeichensatz geschrieben wer- 
den, Formeln wirken wesentlich übersicht- 
licher mit den entsprechenden Klammern, 
welche ja dieselben ASCII-Werte wie die 
deutschen Sonderzeichen besitzen. 


Auch Freunde des Applewriter werden 
dies zu schätzen wissen. Es muß nicht 


Peeker 7/85 





Technik 94 


Bit-Editor 


Zeichensatz-EPROMss für die Videx-Karte 


mehr mühsam der Maschinencode ge- 
knackt und geändert werden, damit der 
richtige Zeichensatz angesprochen wird, 
sondern man wählt deutsch oder amerika- 
nisch mittels Schalter. Für Pascal gilt ähnli- 
ches wie für Multiplan, Texte in deutsch, 
übersichtliche Syntax mit amerikanischem 
Zeichensatz. Sinngemäß trifft dies auch für 
weitere Programme zu. In CP/M-BASIC 
entsprechen nun die Befehle INVERSE 
und NORMAL ihrer tatsächlichen Bedeu- 
tung. 


Grundidee 


Im allgemeinen zieren drei EPROMs das 
80-Zeichen-Interface. In einem steht das 
Programm für die Karte, die beiden ande- 
ren enthalten den deutschen bzw. den 
amerikanischen Zeichensatz. Karten mit 
inverser Darstellungsmöglichkeit opfern 
einen der beiden länderspezifischen Zei- 
chensätze. Das Hin- und Herschalten zwi- 
schen den Zeichensätzen erfolgt soft- 
waremäßig, d.h. durch einen Befehl (z. B. 
Ctrl-Z 2, Ctrl-Z 3). Neuere 80-Zeichenkar- 
ten verwenden ein Zeichensatz-EPROM 
mit größerem Speicher. Es enthält den 
normalen und den inversen Zeichensatz 
desselben Landes. Der Befehl schaltet 
hier innerhalb des EPROMSs auf den ent- 
sprechenden Speicherbereich (normal 
oder invers). Meine Modifikation läßt sich 
prinzipiell bei allen Arten von Karten 
durchführen, wobei zwischenzeitlich eine 
Karte in ähnlicher Form am Markt erschie- 
nen ist. 


von Joachim Klamt 


Nach der Änderung werden die Zeichen- 
satz-EPROMSs 2716 (2K) durch die größe- 
ren 2732 (AK) ersetzt. In dem beim Ein- 
schalten aktivierten EPROM stehen der 
normale deutsche und amerikanische Zei- 
chensatz, im anderen durch Befehl an- 
wählbaren EPROM der inverse deutsche 
und amerikanische. Die jeweils höchst- 
wertige Adreßleitung A11 wird über einen 
gemeinsamen Pull-up-Widerstand an Vcc 
gelegt. Ein einpoliger Schließer genügt, 
um A11 an Masse zu legen, wodurch die 
andere Hälfte der EPROMs angesteuert 
und gelesen wird. So wählt der Schalter 
einen der beiden Zeichensätze, die Soft- 
ware entscheidet über normale oder inver- 
se Darstellung. 

Die EPROMs 2716 und 2732 sind prak- 
tisch pinkompatibel. Lediglich die Leiter- 
bahnen zum Pin 21 (A11) sollten bei bei- 
den 2732 aufgetrennt werden, um A11, 
wie im Bild 1 gezeigt, neu zu verdrahten. 
Weitere Hardware-Änderungen sind nicht 
notwendig. | 





Bild 1 


29 





Das Prinzip der 80-Zeichendarstel- 
lung 


Jedem am Bildschirm dargestellten Zei- 
chen steht eine Matrix von 8 « 9 Punkten 
zur Verfügung. Ein Zeichen besteht somit 
aus 72 einzelnen Punkten, die sich auf 9 
Reihen mit 8 Spalten verteilen. Man kann 
sich jede Reihe als 3stellige Binärzahl vor- 
stellen, wobei eine O einem nicht gesetz- 
ten Punkt entspricht ‘und eine 1 einem 
gesetzten. Für jedes Zeichen wird ein Be- 
reich von 16 8stelligen Binärzahlen reser- 
viert, wobei nur die ersten 9 ausgewertet 
werden. 

Das Betriebssystem der Karte (Programm- 
EPROM) veranlaßt das Auslesen der ent- 
sprechenden 9 Werte aus dem Zeichen- 
satz-EPROM und deren punktweise Dar- 
stellung am Bildschirm. 

Die neue softwaremäßige Umschaltung 
zwischen normaler und inverser Anzeige 
tritt an die Stelle der bisherigen länderspe- 
zifischen Zeichensatzumschaltung. Ein 
einmal invers geschriebener Text bleibt als 
solcher am Bildschirm erhalten, es sei 





Foto A: Normaler Zeichensatz. Ein billiger 
Monitor in üblicher Einstellung zeigt bei 
80-Zeichendarstellung dieses „beschei- 
dene“ Bild. 


. NalBrEte..B° 


208 z8327710° > 
Eirze.nr Sei 


... „nn. 
- = 
” “> 





Foto B: Normaler Zeichensatz. Der Moni- 
tor ist für 80-Zeichendarstellung „optimal“ 
eingestellt, jedoch dann nicht für 80 Zei- 
chen invers. 


30 


denn, man überschreibt ihn im Normal- 
modus. 


Neue Zeichensatz-EPROMs 


Wie ändere ich nun die Zeichensätze in 
den EPROMSs? Falls Sie nicht gerade ei- 
nen völlig neuen Zeichensatz kreieren 
wollen, so empfehle ich Ihnen folgende 
Methode. Lesen Sie die alten EPROMSs, 
z.B. mit einem EPROM-Brenner, und spei- 
chern Sie die Inhalte als Binär-Files auf 
Diskette. Mit dem Programm BITEDITOR 
können Sie die Zeichensatz-Files nach 
Wunsch ändern, wieder auf Diskette 
schreiben und neue EPROMs schießen. 
Sie ersetzen Ihre alten Zeichensatz- 
EPROMs der 80-Zeichenkarte durch die 
neuen und können diese mit BITEDITOR 
testen (Menüpunkt TEST 80 Z). Wenn Sie 
den bis jetzt geänderten Zeichensatz-File 
laden, können Sie noch weitere Korrektu- 
ren vornehmen und wieder neu brennen. 
Verlieren Sie nicht den Mut, wenn Sie 
immer wieder einen Buchstaben entdek- 
ken, der Ihnen so noch nicht gefällt: än- 
dern und neu brennen. 

Ich habe nach wenigen Tagen den inver- 
sen Zeichensatz um eine Matrixlinie tiefer 
gesetzt. Die Unterlängen sind jetzt zwar 
kürzer, dafür kleben die inversen Zeichen 
nicht kontrastarm am oberen Zeilenrand. 
Sie werden oben und unten durch eine 
durchgehende Linie abgegrenzt, selbst 
dann, wenn ober- und unterhalb der Zeile 
keine inverse Darstellung erfolgt. Lediglich 
die Unterlängen reichen dann bis an den 
unteren Rand des Feldes. Die alphanume- 
rischen Zeichenbereiche, die Sie tiefer 
setzen wollen, laden Sie einfach mit 
BLOAD um eine Adresse nach oben ver- 
schoben in den Speicher des Rechners. 
Später habe ich dann auch den normalen 
Zeichensatz tiefer gestellt, damit normale 
und inverse Darstellung innerhalb einer 
Zeile auf einer Linie liegen. Ein Verschie- 
ben des Bereiches mit den Grafiksymbo- 
len erscheint nicht sinnvoll, da diese bis an 
die Ränder der Matrix reichen sollen. Nur 
so können bei der Aneinanderreihung 
durchgehende Figuren entstehen. 
Ähnliche Überlegungen habe ich auch an- 
gestellt für ein seitliches Verschieben in- 
nerhalb der Matrix nach rechts. Links ha- 
ben mehr Buchstaben einen senkrechten 
Strich als rechts. Der Kontrast zum nicht 
inversen Nachbarfeld bleibt öfter gewahrt, 
wenn die Buchstaben nicht linksbündig mit 
dem inversen Feld beginnen, sondern 
rechtsbündig mit diesem enden. So ent- 
stand das Unterprogramm „nach rechts 
verschieben“, welches vom Menü aus mit 


VERSCHIEBEN aufgerufen wird. Das von 
BITEDITOR gerade angezeigte Zeichen 
wird um eine Matrixspalte nach rechts ver- 
schoben. Durch Einbinden in eine FOR- 
NEXT-Schleife könnten auch ganze Berei- 
che verschoben werden. 

Der Versuch hat jedoch gezeigt, daß Zei- 
chen nicht sauber geschrieben werden, 
wenn sie bis an den rechten Rand der 
Matrix reichen. Selbst der normale, nicht 
fette Zeichensatz leidet darunter. Tatsäch- 
lich werden nämlich nicht 8 & 9, sondern 
nur 7 #9 Punkte der Matrix zur Zeichenbil- 
dung herangezogen. Die 8. Spalte kann 
zum Zeichenabstand gerechnet werden. 
Meine Änderungen beschränken sich des- 
halb auf ein Tieferstellen des normalen 
und inversen Zeichensatzes sowie auf das 
Verbreitern der senkrechten Zeichenantei- 
le des inversen Zeichensatzes. Zeigt Ihr 
Bildschirmgerät bereits den normalen Zei- 
chensatz schlecht an, so sollten Sie auch 
diesen fett brennen. Sie können ihn leicht 
durch Invertieren des inversen, fetten Zei- 
chensatzes gewinnen. Durch Aufruf des 
Menüpunktes ?TINVERTIEREN (I = 
Ctrl-I) wird der gesamte Zeichensatz-File 
im Speicher invertiert. 

Haben Sie Ihren deutschen Zeichensatz 
wunschgerecht erstellt, so laden Sie ihn 
hinter sich selbst in den Speicher (ab 
$5800) und ändern mit BITEDITOR die 
deutschen Sonderzeichen in die amerika- 
nischen. Dabei sollte auch die Programm- 
variable FL$ = “800“ (Zeile 4700) in FL$ 
= *1000° geändert werden, damit die hin- 
tereinander geladenen Files als ein einzi- 
ger behandelt werden. Sie sollten nun 
zwei Files von je 18 Sektoren erstellt ha- 
ben. Im ersten stehen der deutsche und 
amerikanische Zeichensatz in normaler 
Ausführung, im zweiten beide Zeichensät- 
ze invers. 


n wesentlichen erlaubt 
-+ Punkte der Natrix setzen oder löschen 
(Andern bzu. Neuerstallen von Zeichen) 
-> INVERTIEREN des gesanten Zeichens 
-> Verschieben einzelner Zeichen nac 
{nur bedingt ratsar) 


ss Harr . ng 
ın+ MIIENITAD Fr 
war “ 


„u? 
caran ." - |; 
2 eRTiIic 3 

” * en 


- 

2 

= 
a 
Er 


”» 
Zei 


> 





Foto C: Fetter Zeichensatz. Darstellung 
am gleichen Monitor bei Verwendung des 
mit BITEDITOR verbesserten Zeichen- 
satzes. 


Peeker 7/85 











Foto D: Fett-inverser Zeichensatz. Die 
deutlichste Verbesserung zeigt sich bei 
der Darstellung des inversen Zeichensat- 
zes im 80-Zeichenmodus. Der nicht fette 
Zeichensatz war am Foto praktisch unle- 
serlich. 


Die Bedienung des Programms 


Das Applesoft-Programm BITEDITOR bie- 
tet im wesentlichen folgende Optionen: 


® Punkte der Matrix setzen oder löschen 
(Ändern bzw. Neuerstellen von Zeichen), 
® Invertieren des gesamten Zeichen- 
satzes, 

® Verschieben einzelner Zeichen nach 
rechts (nur bedingt ratsam). 


Ein versehentliches Verlassen des Pro- 
gramms ist völlig unproblematisch, da die 
zu editierenden Zeichensätze nicht als Va- 
riablen des BASIC-Programms existieren, 
sondern als Binär-Files in den Rechner 
geladen werden. Auch das Ändern von 
Programmzeilen beeinflußt daher die Zei- 
chensätze nicht. 

Nach dem Starten des Programms er- 
scheinen Hauptmenü und Arbeitsfeld 
(Bild 2) auf dem Bildschirm. Die Menü- 
punkte werden durch Eingabe des 1. 
Buchstabens aufgerufen: 


LADEN - Sie werden nach dem Namen 
des zu ladenden Zeichensatz-Files ge- 
fragt. Der File steht danach im Speicher ab 
der Adresse $5000 (FS$ = "5000*). 

SPEICHERN - Sie können einen Namen 
eingeben, unter welchem Ihr geänderter 
Zeichensatz-File abgespeichert wird; 
<RETURN> allein übernimmt den beim 
Laden angegeben (VORGABE) Namen. 
Achten Sie auf die Größe der Variablen 
FL$, damit Sie den gesamten File sichern. 
# HEX-ADR - Durch die direkte Eingabe 
einer Hexadezimaladresse im Bereich von 
$5000 bis $6FFF werden die Speicherin- 
halte ab dieser Adresse angezeigt. Die 
Zeichen erscheinen immer richtig in der 


Peeker 7/85 


nachgebildeten Matrix, wenn die rechte 
Stelle der Hexadezimalzahl O ist. Die Län- 
ge des anzuzeigenden Bereichs legt die 
Variable LG (LG = 9) fest. Die Bildschirm- 
aufteilung läßt Werte von 1 bis 16 zu. 

Die Intervallvariable IV (IV = 16) gibt an, 
daß nach jeweils 16 Adressen der Bereich 
des nächsten Zeichens beginnt. 
Pfeiltasten — Mit den Pfeiltasten kann vor- 
wärts und rückwärts „geblättert” werden. 
Das geschieht durch Erhöhen oder Er- 
niedrigen des Wertes für die momentan 
gültige Adresse um den Betrag IV. Der 
Inhalt des neuen Bereiches wird im Bitmu- 
ster-Fenster angezeigt. 

LEERTASTE - Mit der Leertaste invertie- 
ren Sie das Feld unter dem Cursor und 
können somit Zeichen punktweise ändern. 
IJKM- Das Bitmuster liegt innerhalb des 
Rahmens aus Sternchen. Das Pluszeichen 
ersetzt den blinkenden Cursor, welcher ja 
nicht erkennen ließe, ob an seinem Platz 
ein normales oder ein inverses Feld steht. 
I, J, K und M führen den Cursor wie im 
ESC-Modus in Applesoft. 

NEUSTART - Gefallen Ihnen Ihre Ände- 
rungen nicht, so wird — sofern noch nicht 
<RETURN> gedrückt wurde — mit NEU- 
START das unveränderte Zeichen aus 
dem Speicher geholt und zur Anzeige ge- 
bracht. 

<RETURN> — Das geänderte Zeichen 
wird mit <RETURN> wie am Bildschirm 
sichtbar in den Rechnerspeicher über- 
nommen. 


ADRESSE INHALT BITMUSTER 


FKFRRFRHRRR 


*r+ 


* HERER 

"RR 
* 
SHBuE 
8 


& u 
REBAB 
Karsanıne 


FS$=5R008 


Bild 2 








FL+=808 


TECHNIK 9.4 


WERTEAUSGABE - Bei Wahl des Menü- 
punktes WERTEAUSGABE erscheinen in 
der ersten Spalte des Arbeitsfeldes 
ADRESSE alle Adressen, sowie in der 
zweiten Spalte INHALT deren Werte. Die 
Umwandlungsroutinen am Anfang des 
Programms (HEX-DEZ und DEZ-BIN) las- 
sen sich leicht in andere BASIC-Program- 
me einbinden. 


VERSCHIEBEN — Das angezeigte Zei- 
chen wird um eine Matrixspalte nach 
rechts verschoben. Die Informationen der 
Spalte rechts außen erscheinen in der er- 
sten Spalte links. 


!INVERTIEREN - Bei Eingabe von Ctrl-I 
wird, wie schon erwähnt, der gesamte Zei- 
chensatz invertiert. Ein inverser Zeichen- 
satz wird dabei in einen normalen verwan- 
delt. Der Bereich beginnt bei FS$ und 
endet bei (FS$ + FL$). 


TEST 80 Z - Hierbei wird die 80-Zeichen- 
karte eingeschaltet. Sie können jetzt Zei- 
chen per Tastendruck eingeben. Steckt 
ein bereits mit BITEDITOR geändertes 
EPROM in der installierten 80-Zeichenkar- 
te, so können Sie Ihre Änderungen aus- 
werten und nach dem Zurückschalten ins 
Hauptmenü eventuelle Korrekturen vor- 
nehmen. Sie ändern dabei natürlich nur 
den Zeichensatz-File im Rechner. Die 
nächste Auswertung kann erst nach er- 
neutem Brennen des EPROMSs erfolgen. 

Die Kopfzeile zeigt drei mögliche Befehle 
an. Ctrl-I und Ctri-N schalten auf inverse 


KOMMANDOS 
1. BUCHSTA-) 
BE EINGEBEN) 
LADEN | 
SPEICHERN 

# HEX-ADR 
au, 
 LEERTASTE 
3x 

'NEUS” ART. 
SRETURND 
WERTEAUSGABE 


%* 
* 
* 
* 
* 
x | 
* 
* 
* 


_QUITTIEREN 





LG=9 Iveie 


Lesen Sie weiter auf Seite 50 


31 





Verkauf Software 


Pascal-Toolbox und Anwen- 
dersoftware billig abzugeben. Info 
gegen Rückporto von Ernst Heinz 
Püttkampsweg 13, 2 Hamburg 52 


Intelligenz-Test (lQ@) für +/e/c, 
Disk mit ca. 170K Daten für 30 DM 
per Nachnahme bei: Frank Knab 
6500 Mainz 43 Oppenheimer Str.37 


APPLE Il: ’GIANT WORLD’ ist 
da!! x Das neu Top-Adventure mit x 
* Spitzengrafik für riesigen x 
* Spielspaß! Es lohnt sich! x 
Für nur 89,— DM Vorkasse o.NN 
bei #+* FANTASTIC-Software xxx 
x** Grasweg 7, 2857 Langen 3 xx 


AWII-Manual (dtsch) + WPL 
DM 25 Privat-Dater (dBASE) DM 
80, Biorhythmus (prof) DM 120 
bei: Geßner, Haus 70, 8431 Kot- 
tingwörth Tel: 084 61/84 53 


Über 100 HGR-Farben, HGR- 
Schrift in bel. Größe DM 40,- 
0261/63586 


*x* Apple Il Steuer xx ersetzt 
alle Lohn- u. Eink. Steuertabellen 
+ unbegrenzte Beträge und Kin- 
der + Länderanpassung Kirchen- 
steuer DM 120,- f. 1985 mit Nach- 
lieferung 1986; Info kostenlos; W. 
Hagenmaier * Malerwinkel 7 
8087 Türkenfeld x 


Verkauf Hardware 


256 K RAM Karte AP 17 IBS 
599 DM ESW 103 VHB Tel: 0521/ 
870424 


== BRUNDW 


== Büroelektronik 
1 Berlin 30 : ® 0 30-26 111 26 





Keithstr. 26 - 


Bitte verwenden Sie für Kleinanzeigen 


die vorgedruckten Antwortkarten in 
diesem Heft. 





32 








Apple Ilc, kompl. incl. ausführl. 
Literatur zu verk. DM 2500,— 
Tel: 021 61/4 1460. 


Fernschreiberinterface am 
Gameport m. Programm DM 79,- 
P. Benner, Hubertusstr. 131, 4150 
Krefeld 


MACINTOSH 128KB 2 Mon. 
alt VHB DM 6100,. Tel: 061 21/ 
461371 


EPROM’S 2716 & 8 DM RAM'’s 
4116-2 43 DM Tel: 06251/69742. 


Verkaufe 128K Mac, Imagew- 
riter, 2 Lfw. + umfangreiche Soft- 
ware (Originale) auch getrennt. v. 
Wennstein, Postf. 2057 Wentorf 


TEAC 55F 560,— 55B 515,- * 
SSDD 10 St 42,- 96 tpi DS 78,— 
Lochverst. europ. Markenw. & Box 
Rglas. Schl. für 40-42,- für 80- 
49,— * Monitore 18Mhz 12” entsp. 
gr. ab 298,—. VICO, 

Selchower Str. 31, 1000 Bin 44 


*x**+* Apple Supermodem xxx* 
V21, V23 und Bell, 300-1200 
Baud komplett auf einer Karte, mit 
Software startfertig nur 398 DM. 
Rolf Kiupel, Tel. 04 31/55 54 27 


Apple Il+ und Zubehör: Apple 
II+ 48K 900,-, 16KRam 80,-, Ori- 
ginal Pal-Karte 190,-, Pal-Karte 
90,— Accelerator Il 790,-, alle Prei- 
se VHB. Tel: 06221/74832 oder 
07 21/3739 14. 


256K-RAM Karte für Apple 
II/BASIS mit Treibersoftware DM 
700,— W. Porten, 0221/35 1751. 


MACINTOSH 512K-Erweite- 
rung 890 DM 6 Mon. Garantie; 
24 Stunden Service Händleranfr. 
erwünscht P. Clotten Remystr. 5; 
5413 Bendorf 0 26 22/54 58 





PEEkeR 


-= RUND 


4 Büroelektronik GmbH 
Bachstr. 104 : 2 HH 76 : ®& 0 40-220 1155 


Börse 


MACINTOSH 512K-Erweite- 
rung 6 Mon. Garantie; 24 Stun- 
den Service Händleranfr. er- 
wünscht P. Clotten Remystr. 5; 
5413 Bendorf 062 22/54 58 


Verk. Apple Il+ mit 2 Disk Il, 
Contr., Monitor, Softw., VP 2000 
Fr. Tel. 056/9635 75 Schweiz b. 
Baden. 


RAMKARTE (BASIS) 108/ 
APPLE) 256KB für 650,— DM - 1 
EHRING-CONTROLLEER für 


2x80TR. 130,- Tel: 0201/ 
502192 
Verkaufe Typenraddrucker 


Silverreed EXP 500 DIN A4 quer 
wenig gebraucht. Evtl. mit para. 
Int. VB 1100 DM, 

Tel: 02122/55529 


Kennen Sie den Macintosh? 
Können Sie ihn programmieren 
und haben Sie interessante Ideen, 
dann sind Sie der richtige Partner 
für uns. Wir vermarkten Ihre Pro- 
gramme bundesweit — oder ertei- 
len Programmieraufträge. Chiffre 
P1002 


Anwendersoftware für 
Handwerk Tischlerei, Fenster- 
bau, 7 Mitarb. gesucht. DOS-PRO- 
DOS- oder CPM Angebote an 
Heinz Heubrock Osterbauer 101, 
4715 Ascheberg 


(= 





KRRKKRKKRKRKRRKRRRRR 


Floppysubsystem 
für Apple Il 


2 x 3,5" TEAC FD-35F 
max. 2 x 1MB 
Autopatch-Coniroller 
inkl. Manual und SW 
ALU-Profil-Gehäuse m. Netzt. 
komplett anschlußfertig 
nur DM 2398,— 


DIL 2 2 2 2 > 2 > 2 > > 2 25 
Telekommunikation 


Anschlußkabel 
Dataphon S21d 
Terminalsoftware 
komplett anschlußfertig 
nur DM 398,— 


KRRRRKRRRKRRRRRRKR 


TISCH & ZETTL GdbR 
Elektronicveririeb 
Rosenstr. 33, 8034 Germering 
Telefon 089/841 68 17 


KRHKRKFKKHKKRKRRRRK 


KKRKKKKKKKKRRR 
KRHRRRKRKKKKRR 


KAKKKKKAKRKHRKRR 


KRHKKKKHKRKKKKKKKRRR 


KKARKKRK 


Suche amerikanische Aktienkurse 
auf Datenträger. Zeitraum 1978 — 
heute. Angebote an Tel. 07251/ 
103068, H. Britting. 


Ihr apple Partner in der 
Schweiz C&L Computershop 
Zentralstraße 93 

5430 Wettingen 

Verlangen Sie unseren ungewöhn- 
lichen Versandkatalog. 


Progr. Ihre Eproms; 2508- 
2564 u. 27 16-2 7128; 


0 89/68 53 36 


MC 3470 (der Leseverstärker auf 
dem Analogboard): DM 10,-, A. 
Deckers, PF 967, 7 Stuttgart 1 


MAC mit Programmen sucht 
MAC ohne Programme! E. Schrei- 
ber 2070 Ahrensburg 


1 Preisliste 
i kostenlos! 
Katalog DM 2,— 


Unser Angebot im Juli 


Chinon Laufwerk 


(Test peeker 5/85) 
DM 398,- 


Profimax Ill 


Lazar Ilze, Test peeker 6/85) 


DM 1248,— 


D.O.S. Computersysteme 
Am Kühnbach 42, 7170 Schwäbisch Hall 11 
Telefon (0791) 51736 





Peeker 7/85 


Ulrich Stiehl 


6502 leicht gemacht 


Teil 1 


1 Warum dieser Beitrag geschrieben 
wurde 


Ziel dieses Beitrags ist es, den Assem- 
bler-Neuling mit der Programmierung 
des 6502-Prozessors vertraut zu 
machen. Dabei stand nicht die Vollstän- 
digkeit, sondern eine ballastfreie Glie- 
derung im Vordergrund. Der in der 
Apple II Familie enthaltene 6502 eignet 
sich aus verschiedenen Gründen für die 
ersten Gehversuche in der Assembler- 
programmierung: 

- Der Befehlssatz dieses Prozessors 
ist vergleichsweise einfach zu erlernen. 
— Dieser Prozessor ist weitverbreitet 
und findet nicht nur im Apple, sondern 
z.B. auch in vielen Commodore Rech- 
nern Anwendung. 


Lehrbücher über Maschinensprache 
sind leider in der Regel völlig undidak- 
tisch aufgebaut und beginnen meist mit 
der Binärmathematik, die für den Anfän- 
ger naturgemäß zunächst ein Buch mit 
sieben Siegeln ist. Deshalb sind viele 


Assembler-Anfänger frustriert und mei- 


nen, daß Maschinensprache nur etwas 
für „Eingeweihte“ sei. In Wirklichkeit ist 
Assembler nicht wesentlich schwieriger 
als eine Hochsprache wie BASIC. Wäh- 
rend jedoch z. B. BASIC sofort „Erfolgs- 
erlebnisse‘“ vermittelt, dauert es in As- 
sembler relativ lange, bis „sinnvolle“ 
Programme geschrieben werden kön- 
nen. Dies rührt daher, daß aus Sicht der 
Maschinensprache BASIC-Befehle stets 
Makrobefehle sind, d. h. ein BASIC- 
Befehl wie HOME (= lösche den Bild- 
schirm) setzt sich in Wirklichkeit aus 
zahlreichen elementaren Maschinenbe- 
fehlen zusammen, die isoliert betrachtet 
keine sinnvollen Aufgaben zu erfüllen 
scheinen. Maschinensprachlich gese- 
hen besteht die Aufgabe des HOME-Be- 
fehls darin, in jeder einzelnen Zelle des 
Bildschirmspeichers eine Leertaste zu 


Peeker 7/85 





speichern und anschließend den Cursor 
in Zeile 1, Spalte 1 zu positionieren. 
Beim Apple ist der Bildschirmspeicher 
kein homogener Block, so daß kompli- 
zierte Algorithmen angewandt werden 
müssen, um versehentliches Löschen 
von Speicherbereichen, die nicht zum 
Bildschirm gehören, zu vermeiden. So 
wird verständlich, daß die Assembler- 
Programmierung des HOME-Befehls 
bereits ein größeres Unterfangen dar- 
stellt. 


2 Wann ist das Programmieren in 
Assembler vorzuziehen? 


Assembler-Programme sind fast immer 
erheblich kompakter und schneller als 
die entsprechenden Programme in ir- 
gendeiner höheren Programmierspra- 
che. Dies liegt in der Tatsache begrün- 
det, daß ein Computer grundsätzlich nur 
Maschinenbefehle versteht. Bei einer 
Interpreter-Sprache wie BASIC muß der 
Interpreter jeden Befehl des BASIC- 
Quellenprogramms zunächst in eine Ma- 
schinenbefehlssequenz transformieren 
und diese dann ausführen. Bei einer 
Compiler-Sprache wie PASCAL — übri- 
gens lassen sich auch BASIC-Pro- 


gramme kompileren — erfolgt die Um- 
wandlung in Maschinenbefehlssequen- 
zen durch die Kompilation. Da dies je- 
doch ein mechanischer „Schema F“- 
Prozeß ist, entsteht ein aufgeblähtes, 
umständliches Maschinenprogramm, 
das wesentlich mehr Speicherraum ein- 
nimmt und erheblich langsamer abläuft 
als das entsprechende reine Assembler- 
Programm. 


Grundsätzlich empfiehlt sich das Pro- 
grammieren in Assembler stets dann, 
wenn maximale Kompaktheit und/oder 
maximale Geschwindigkeit des Pro- 
gramms erforderlich sind. Ferner ist As- 
sembler angebracht, wenn die Hoch- 
sprache(n) nicht über diejenigen Befehle 
verfügen, die zur optimalen Lösung einer 
Programmieraufgabe erforderlich sind. 


Die beiden Applesoft-BASIC-Beispiele in 
Tabelle 1 veranschaulichen den Zeitge- 
winn bei Verwendung der Assembler- 
Sprache. Bei Programm 1 handelt es 
sich um ein Zählprogramm mit Integer- 
Zahlen. Da z.B. der TASC-Compiler 
(ein Compiler für den Apple Il Plus) 
über echte Integer-Arithmetik verfügt, 
ist das entsprechende Assembler-Pro- 
gramm „nur“ neunmal schneller als die 
TASC-Version. 


Tabelle 1: Geschwindigkeitsvergleich (Dauer in Sekunden) 


Programm Assembler 
1 5 
2 .25 


10 REM PROGRAMM 1 

USA =1YE% =;10009 

30 FORC = S% TO E% : REM 
START BIS ENDE 

40 A% = C + E% : REM ADDIERE 
ZÄHLER ZU E% 

50 NEXT 


TASC-Compiler Hayden-Compiler 





Applesoft 


155 38 
23 64 
10 REM PROGRAMM 2 
20:5%: =: B192: E% =:24575: 
Zr =D 
80 FORC = S% TO EA 
40 POKE C,Z% : REM LÖSCHE 
SPEICHERSTELLE 
50 NEXT 


33 


NUL @8$ 
A 

B 

C 

ker 2 
E 

F 

BEIL 6 
Re H 
TAB: 3 
| J 
t K 
FF L 
RIN M 
so N 
SI o 
P 
KON: 
R 

XOFF S 
R 

_ U 
V 

W 

X 

Y 

zZ 
a 
\Ö 

U 

t 

I 

4 

$ 

% 

& 

( 

) 

. 

/ 

0 

1 

2 

3 

4 

5 

6 

7 

8 

9 

“ 

5 

? 


34 


01 
02 
03 
04 


05 


07 
08 
09 
OA 
0B 
0C 
OD 
OE 
OF 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
1A 
1B 
is 
1D 
1E 
1F 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
2A 
2B 
2C 
2D 
2E 
2F 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
3A 
3B 
3 
3D 
3E 
3F 


00000000 
00000001 
00000010 
00000011 
00000100 
00000101 
00000110 
00000111 
00001000 
00001001 
00001010 
00001011 
00001100 
00001101 
00001110 
00001111 
00010000 
00010001 
00010010 
00010011 
00010100 
00010101 
00010110 
00010111 
00011000 
00011001 
00011010 
00011011 
00011100 
00011101 
00011110 
00011111 
00100000 
00100001 
00100010 
00100011 
00100100 
00100101 
00100110 
00100111 
00101000 
00101001 
00101010 
00101011 
00101100 
00101101 
00101110 
00101111 
00110000 
00110001 
00110010 
00110011 
00110100 
00110101 


‘00110110 


00110111 
00111000 
00111001 
00111010 


00111011 


00111100 
00111101 
00111110 


00111111 


000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
012 
013 
014 
015 
016 
017 
018 
019 
020 
021 
022 
023 
024 
025 
026 
027 
028 
029 
030 
031 
032 
033 
034 
035 
036 
037 
038 
039 
040 
041 
042 
043 
044 
045 
046 
047 
048 
049 


050 


051 
052 
053 
054 
055 
056 
057 
058 
059 
060 
061 
062 
063 


u A 
TCo>N<XF<cIHR2D BT HOZZrR- "IH IT no oO U >> 


Im — 


nnd SS © Ei a Mine var Zt FE lin, ee Sr. > Min m BE, = Sehe Shen Wr hr © Are 7 


w) 
m 
- 


40 
41 
42 
43 
4 
45 
46 
47 
48 
49 
4A 
4B 
4C 
4D 
4E 
4F 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
5A 
5B 
5C 
5D 
SE 
Sr 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
BA 
6B 
6C 
6D 
BE 
6F 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
7A 
7B 
7C 
7D 
TE 
7F 


ASCII-Tabelle 


01000000 
01000001 
01000010 
01000011 
01000100 
01000101 
01000110 
01000111 
01001000 
01001001 
01001010 
01001011 
01001100 
01001101 
01001110 
01001111 
01010000 
01010001 
01010010 
01010011 
01010100 


01010101 


01010110 
01010111 
01011000 
01011001 
01011010 
01011011 
01011100 
01011101 
01011110 
01011111 
01100000 
01100001 
01100010 
01100011 


01100100. 


01100101 
01100110 
01100111 
01101000 
01101001 
01101010 
01101011 
01101100 
01101101 
01101110 
01101111 
01110000 
01110001 
01110010 
01110011 
01110100 
01110101 
01110110 
01110111 
01111000 
01111001 
01111010 
01111011 
01111100 
01111101 
01111110 
01111111 


064 
065 
066 
067 
068 
069 
070 
071 
072 
073 
074 
075 
076 
077 
078 
079 
080 
081 
082 
083 
084 
085 


086 


087 
088 
089 
090 
091 
092 
093 
094 
095 
096 
097 
098 
099 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
121 
122 
123 
124 
125 
126 
127 


— 0 
SEP FETT IED DI DO ZELTEN EDER ET 


oo  PROD—- DO. 


BR AN 





80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
8A 
8B 
8C 
8D 
8E 
8r 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
9A 
9B 
9C 
9D 
9E 
9F 
AO 
A1 
A2 
A3 
A4 
A5 
A6 
A7 
A8 
A9 
AA 
AB 
AC 
AD 
AE 
AF 
BO 
B1 
B2 
B3 
B4 
B5 
B6 
B7 
B8 
BI 
BA 
BB 
BC 
BD 
BE 
BF 


10000000 
10000001 
10000010 
10000011 
10000100 
10000101 
10000110 
10000111 
10001000 
10001001 
10001010 
10001011 
10001100 
10001101 
10001110 
10001111 
10010000 
10010001 
10010010 
10010011 
10010100 
10010101 
10010110 
10010111 
10011000 
10011001 
10011010 
10011011 
10011100 
10011101 
10011110 
10011111 
10100000 
10100001 
10100010 
10100011 
10100100 
10100101 
10100110 
10100111 
10101000 
10101001 
10101010 
10101011 
10101100 
10101101 
10101110 
10101111 
10110000 
10110001 
10110010 
10110011 
10110100 
10110101 
10110110 
10110111 
10111000 
10111001 
10111010 
10111011 
10111100 
10111101 
10111110 
10111111 


128 
129 
130 
131 
132 
133 
134 
135 
136 
137 
138 
139 
140 
141 
142 
143 
144 
145 
146 
147 
148 
149 
150 
151 
152 
153 
154 
155 
156 
157 
158 
159 
160 
161 


162° 


163 
164 
165 
166 


167 


168 
169 
170 
171 
172 
173 
174 
175 
176 
177 
178 
179 
180 
181 
182 
183 
184 
185 
186 
187 
188 
189 
190 
191 


ns 0 [u 
co» N<Xs<cHV DH VOZZTrA--IONMIOU>“ 


a a 


177 EIERN. BT EEE EEE NETTE TE IE 20 T—€— 


O 
m 


co 


C1 

C2 
C3 
C4 
C5 
C6 
C7 
C8 
c9 
CA 
CB 


CC 
CD 


CE 
CF 
DO 
D1 

D2 
D3 
D4 
D5 
D6 
D7 
D8 
DI 
DA 
DB 


DC 
DD 


DE 
DF 
EO 
E1 
E2 
E3 
E4 
E5 
E6 
E7 
E8 
E9 
EA 
EB 
EC 
ED 
FE 
Sr 
FO 
Ft 
F2 
F3 
F4 
F5 
F6 
F7 
F8 
Fg 
FA 
FB 
FC 
FD 


"FE 


FF 


11000000 
11000001 
11000010 
11000011 
11000100 
11000101 
11000110 
11000111 
11001000 
11001001 
11001010 
11001011 
11001100 
11001101 
11001110 
11001111 
11010000 
11010001 
11010010 
11010011 
11010100 
11010101 
11010110 
11010111 
11011000 
11011001 
11011010 
11011011 
11011100 
11011101 
11011110 
11011111 
11100000 
11100001 
11100010 
11100011 
11100100 
11100101 
11100110 
11100111 
11101000 
11101001 
11101010 
11101011 
11101100 
11101101 
11101110 
11101111 
11110000 
11110001 
11110010 
11110011 
11110100 
11110101 
11110110 
11110111 
11111000 
11111001 
11111010 
11111011 
11111100 
11111101 
11111110 
11111111 


192 
193 
194 
195 
196 
197 
198 
199 
200 
201 
202 
203 
204 
205 
206 
207 
208 
209 
210 
211 
212 
213 
214 
215 
216 
217 
218 
219 
220 
221 
222 
223 
224 
225 
226 
227 
228 
229 
230 
231 
232 
233 
234 
235 
236 
237 
238 
239 
240 
241 
242 
243 
244 
245 
246 
247 
248 
249 
250 
251 
252 
253 
254 
255 


Peeker 7/85 


Bei dem Programm 2 geht es um das Lö- 
schen eines Speicherbereiches (ähnlich 
wie bei Eingabe von HOME). Hierfür gibt 
es jedoch keinen entsprechenden 
BASIC-Befehl, so daß eine umständliche 
Simulation mit der POKE-Anweisung er- 
forderlich ist. Infolgedessen ist die 
Assembler- über 50mal schneller als die 
TASC-Version. 


Per Umkehrschluß läßt sich aus diesen 
beiden Beispielen folgern, daß 
Assembler-Programmierung stets dann 
überflüssig ist, wenn die Hochsprache 
exakt über diejenigen Makrobefehle ver- 
fügt, die maschinensprachlich ausge- 
führt werden sollen. So führt z. B. die 
Assembler-Programmierung des HOME- 
Befehls zu keiner Geschwindigkeitsstei- 
gerung, da dieser bereits als Maschinen- 
routine vorliegt, die der BASIC- 
Interpreter lediglich aufzurufen braucht. 


3 Dezimale und hexadezimale 
Zahlen 


Dezimale Zahlen haben die Basis 10 und 
setzen sich aus den Ziffern 0, 1,2, 3, 4,5, 
6, 7, 8, 9 zusammen. 


Die Dezimalzahl 123 bedeutet 
1 2 g 


18-1 +10'-2 + 10-3 = 123 
dezimal 


Hexadezimale Zahlen haben die Basis 
16 und setzen sich aus den Ziffern 0, 1,2, 
3, 4,5,6, 7,8, 9,A,B,C,D, E, F zusam- 
men. 


Die hexadezimale Zahl $123 bedeutet 
1 | 2 3 

18:1 +: 16'-2+ . 1093 = 291 
dezimal 


Hexadezimalen Zahlen wird üblicherwei- 
se ein Dollar-Zeichen vorangestellt, um 
Verwechslungen mit Dezimalzahlen zu 
vermeiden. Tabelle 2 gibt den Zusam- 
menhang zwischen Hexadezimal- und 
Dezimalzahlen sowie die entsprechen- 
den ASCII-Zeichen (American Standard 
Code for Information Interchange) für 
den Bereich 0 bis 255 wieder. Wenn Zah- 
len im Bereich von $100 (dezimal 256) bis 
$FFFF (dezimal 65535) umzuwandeln 
sind, hilft folgender Algorithmus weiter. 


Beispiel: 

$ABCD 

Aufspaltung: AB + CD 

Addition: 171-256 +.205-1 
= 43981 
dezimal 


(Das binäre Zahlensystem wird erst spä- 
ter eingeführt.) 


Peeker 7/85 


4 Byte, Register, Adresse und Befehl 


Byte 


Ein Byte läßt sich definieren als eine he- 
xadezimale Zahl im Bereich $00 bis $FF 
(dezimal O0 bis 255) und setzt sich aus 2 
hexadezimalen Ziffern, Halbbytes oder 
Nibbles zusammen. Z. B. besteht das By- 
te $AB aus dem höherwertigen (= lin- 
ken) Nibble $A und aus dem niederwerti- 


gen (= rechten) Nibble $B. 


Register 


Alles was in einem Mikrocomputer ge- 
schieht, geschieht durch den Mikropro- 
zessor. Zur Vereinfachung nehmen wir 
zunächst an, daß der 6502 aus drei Regi- 
stern oder Mikroprozessor-Speicherstel- 
len besteht, die Bytes laden, speichern 
oder sonstwie manipulieren können. Die- 
se drei Register heißen: 


A oder Akkumulator 
X oder Index Register X 
Y oder Index Register Y. 


Adresse 


Der Speicher (RAM = Lese-Schreib- 
Speicher, ROM = Nur-Lese-Speicher), 
der vom 6502 adressiert werden kann, 
läßt sich anschaulich als eine Kette von 
$10000 oder 65536 Zellen (Speicherplät- 
zen oder Speicherstellen) vorstellen, von 
denen jede einzelne 1 Byte enthalten 
kann. Diese Speicherstellen sind von 
$0000 bis $FFFF (0 bis 65535) numeriert. 
Die Adresse ist die Nummer einer Spei- 
cherstelle. Es ist wichtig, zwischen der 
Nummer einer Speicherstelle und ihrem 
Wert — bildlich zwischen der Hausnum- 
mer und dem Inhalt des Hauses — zu un- 
terscheiden. Z. B. kann die Speicherstel- 
le $00FF das Byte $AA und die Speicher- 
stelle $00AA das Byte $FF enthalten. 


Eine Adresse umfaßt beim 6502 grund- 
sätzlich 2 Bytes. Beispielsweise besteht 
die Adresse $100A aus dem höherwerti- 
gen (= linken) Byte $10 und dem nieder- 
wertigen (= rechten) Byte $0A. Zusam- 
menfassend gilt: 


a) Eine Speicherstelle enthält 1 Byte 
($00 — $FF) 

b) Eine Adresse umfaßt 2 Bytes ($0000 
=iSFFFP). 


(Als Sonderfall kann im Bereich $0000 — 
$00FF eine Adresse auch durch 1 Byte 
ausgedrückt werden. Weil hier das hö- 
herwertige Byte implizit null ist ($00), 
wird dieser Bereich als Zero-Page oder 
Nullseite bezeichnet.) 


Befehl 


"Ein maschinensprachliches Programm 


ist eine Folge von Befehlen. Der Befehls- 
satz des 6502 Mikroprozessors umfaßt 
56 verschiedene Anweisungen. Der 
Zweck des Prozessors besteht darin, die- 
se zu dekodieren und auszuführen. Bei 
den meisten Befehlen wird der Inhalt ei- 
ner Speicherstelle durch einen Register- 
inhalt verändert und umgekehrt. 


5 Laden und Speichern 


LDA = Load Accumulator = Lade den 
Akkumulator mit dem Inhalt, der sich in 
einer bestimmten Speicherstelle befin- 
det, und 


STA = Store Accumulator = Speichere 
den Inhalt des Akkumulators in eine be- 
stimmte Speicherstelle 


sind Beispiele von 6502 Befehlen. Die In- 
struktionen LDA und STA lassen sich 
wie folgt verdeutlichen: 


LDA $035A lädt den Akkumulator mit 
dem Byte, das sich in der Speicherstelle 
$035A befindet (z.B. $FF). Nach dem La- 
devorgang befindet sich im Akkumulator 
dann das Byte $FF; gleichzeitig bleibt 
$FF in der Speicherzelle $035A erhalten 
(Abbildung 1a). 


STA $0361 überträgt den Inhalt des Ak- 
kumulators (jetzt $FF) in die Speicher- 
stelle $0361; $FF bleibt gleichzeitig im 
Akkumulator erhalten (Abbildung 1b). 


Lade- und Speicherbefehle verändern so- 
mit den Inhalt der Speicherzelle, aus der 
geladen wird, nicht. (Zum „Löschen“ ei- 
ner Speicherstelle muß in ihr $00 gespei- 
chert werden.) 


Die Befehlssequenz LDA $035A STA 
$0361 stellt das Maschinenprogramm 
dar und muß selbst irgendwo im Spei- 
cher abgelegt sein, z. B. ab Adresse 
$0300 (Abbildung Ic). Trifft der Mikropro- 
zessor auf das Byte $AD in Speicherstel- 
le $0300, dekodiert er $AD als LDA- 
Befehl und faßt die nachfolgenden 
2 Bytes als Adresse auf, die beim 6502 
stets „umgedreht“ sind („low byte first“), 
also AD 5A 03 statt AD 03 5A. 


Nach Ausführen dieses Befehls (soge- 
nannter 3-Byte-Befehl: 1 Byte für Be- 
fehlscode + 2 Bytes für Adresse) ge- 
langt der Mikroprozessor zur Speicher- 
stelle $0303, in der sich $8D befindet, 
das als STA dekodiert wird. Die nachfol- 
genden zwei Bytes werden wiederum als 
Adresse interpretiert. 


35 





a) LDA $035A = Lade Akkumulator 
mit Speicherstelle $035A 








=|ojojw|m|n|o oje] wjm 


035A 035B 035C 035D 035E 035F 0360 0361 0362 0363 
Adresse 


b) STA $0361 = Speichere Inhalt des 
Akkumulators in Speicherstelle $0361 


SEEIDEIEIEIEIEIEN 


035A 035B 035C 035D 035E 035F 0360 0361 0362 0363 





Adresse 


c) LDA $035A STA $0361 


SESSGGDEDEDL 


0300 0301 0302 0303 0304 0305 0306 0307 0308 0309 
Adresse 


d) LDA $03AD 


TIBER" 


0300 0301 0302 03AD Adresse 





Abbildung 1: Darstellung der 6502 Befehle LDA und STA 
Tabelle 3: Einteilung des Quell-Codes. 


Feld 1 Feld 2 Feld 3 Feld 4 


LABEL OP-CODE OPERAND COMMENT 


ORG ‚origin 
ADDRESS1 EQU ‚equates 
ADDRESS2 EQU ‚equates 


START LDA ADDRESS1 ‚loading 
STA ADDRESS2 ‚storing 
END RTS 





36 


Trifft der Mikroprozessor z. B. auf die 
Byte-Folge AD AD 03 (Abbildung Id), in- 
terpretiert er das erste $AD als LDA und 
das zweite $AD als Teil der 2-Byte- 
Adresse $03AD. Wenn sich in dieser 
Speicherstelle nun $BB befindet, so 
hängt es vom Sinn des Programms ab, 
ob BB als Hexadezimalzahl $BB, als De- 
zimalzahl 187, als ASClIl-Zeichen „,;“ 
oder sonstwie interpretiert wird. 


$AD für LDA ist ein sogenannter 
Operations-Code (Op-Code), d. h. eine 
hexadezimale Zahl, die vom Mikropro- 
zessor als ein gültiger Befehl interpre- 
tiert wird. „LDA“ selbst in ein sogenann- 
tes Befehlskurzwort (Mnemonic). Die Be- 
fehlskurzwörter sind standardisiert und 
bestehen beim 6502 grundsätzlich aus 3 
Buchstaben. 


Teil2 


6 Assembler und Maschinensprache 


Im vorangegangenen Teil wurde noch 
nicht genau zwischen Assembler(spra- 
che) und Maschinensprache unter- 
schieden. Ein Maschinenprogramm 
(= ein in Maschinensprache geschrie- 
benes Programm) ist eine Folge von he- 
xadezimalen Zahlen, z.B. „AD 5A 03 8D 
61 03°. Wir erinnern uns, daß dieses he- 
xadezimale Kauderwelsch „LDA $035A 
STA $0361“ bedeutet. Die hexadezima- 
len Werte eines Maschinenprogramms 
lassen sich zwar von BASIC aus 
„poken“, etwa in der Form 


POKE 768, 173: ıEM $AD 
POKE 769, 90 : REM $5A 
POKE 770,3 : REM $03 usw., 


doch ist diese Prozedur umständlich 
und damit für längere Maschinenpro- 
gramme nicht zu empfehlen. 


Ein Assembler ist ein Hilfsprogramm, 
das aus zwei Modulen besteht, dem Edi- 
tor und dem Assembler im eigentlichen 
Sinn. Der Editor dient zum Erstellen und 
Redigieren des Quell-Codes (z. B. „LDA 
$035A STA $0361“), der Assembler zur 
Umwandlung des Quell-Codes in den 
Objekt-Code (z. B. AD 5A 03 8D 61 093). 
Assembler sind meist zeilenorientiert 
(wie BASIC), wobei jede Befehlszeile des 
Quell-Codes in vier Felder eingeteilt ist 
(Tabelle 3): 

Feld 1: „Labels“ sind Marken oder Na- 
men für Adressen, z. B. „ADDRESS1 
EQU $035A“ (kann entfallen). 

Feld 2: „Mnemonics“ sind leicht ein- 
prägbare Befehlskürzel für die Op- 
Codes, die beim 6502 regelmäßig aus 


Peeker 7/85 


Tabelle 4: 6502 Mnemonics nach Funktionen mit den Op-Codes für die Adressierungsarten, der Anzahl der Takte, der 


Anzahl der Bytes sowie den beeinflußten Statusflags. 


Accu. 





ERTL TFEF ESEL I FREE ISFEEE FEST TI IISIPFIETPELIIF RE FILE FINE IE FESTE AT EI FT 

BI EIETTL TVIARPIHI TED FBF EP TSET LEI TDT IT FF EEE PET FIT FE ER TEE I FI FETT HH II 

ZEIT IE EFEB EAU HET IRIET TI Se FE EREFFTIIEZT THF FEE EFF FEIN IE FT IL FE SF 

Ba ET FIT LITT A FI FO Se EFT EN AS SODOOT I PFEIL EEF TEE IIIT ER OOF FT OD O9 7 

N Ba BE Ende la EB en u en a nel iern ann adair 

a 2.2 zZ EERLFTTEITI TI EBIL EI HE HITE ELITE TI TFT III ZEIT ET ES EEFFT SE ENE N 

85° DEE BET a 1a ers 0 LE RRDOFRE A U Dean es 

85 MED 

285 

26 ER 

= N 

; 

85 Brake 

20), : 2 ewig are gas lea. 7 re el Te 

87 [e 6) (ee) 

:&| | - Issesjässejsajesaeses |se - |, Tasse T: 1 | Is 

> * 

BER ER a ee ee ea 

er — eh N 

> vr “ 

BAM a el pa ee. ee er zu 

> 

NE Be ee eier SB 

Ez a 

er > 

a ee ae a 

ee re ee ar er, 

#5 ns 

a er 

a a a ET ER FR 

8 INTER ER EIERENE BR. 
NuLIioryoi 0| on 


Zero,X | Zero,Y | Absol. | Abs,X 
Op |ı Cy | Op ı Cy| Opı Cy 


LUD) un ınD LU) ınD (de) 
ass I I III tie Te 5 Teeinenienime 
Bea I EN he je le Taninneinsien 

NOxs NIT T< wm nawmın 
Bess | | | | 1 | jensal  |s je |sulnse 


Zero-P 


Immedi. 
Op | Cy! Op| Cy | Op | Cy 
Ag 
A2 
AO 
29 
09 
49 


Function 





Load 

. ‚Store 
Transfer 
Stack Ptr 
Stack 
Status R. 
Increment 
Decrement 
Add/Subt. 
Boolean 
Shift 
Rotate 
Miscell 
No. of Bytes 


* 


2 Takte ohne Verzweigung, 3 Takte bei Verzweigung, 4 Takte bei Verzweigung mit Seitenübergang. 


1 Takt mehr bei Seitenübergang; 


+ = 


37. 


Peeker 7/85 


Beispiele für absolute Adressierung. 















LDA $1000 ;lade den Akku mit (dem Byte) der 


Speicherstelle $199% 


AE AA BB LDX $BBAA ;lade das Index-Register X mit 
Speicherstelle $BBAA 

AC 00 BO LDY $oddd ;lade das Index-Register Y mit 
Speicherstelle $990d 

8D 10 98 STA $0019 ;speichere A in Speicherstelle $PW1P 

8SE 12 34 STX $3412 ;speichere X in Speicherstelle $3412 

SC FF FÖ STY $FÖFF ;speichere Y in Speicherstelle $FFF 


Beispiele für Nullseite-Adressierung. 





A5 00 


LDA $ßd ;lade A mit Speicherstelle $99 (=$P909) 
A6 18 LDX $19 ;lade X mit Speicherstelle $1P 
A4 FF LDY $FF ;lade Y mit Speicherstelle $FF 
85 11 STA $11 ;speichere A in Speicherstelle $11 
86 29 STX $2d ;speichere X in Speicherstelle $2P 
84 DD STY $DD ;speichere Y in Speicherstelle $DD 





Beispiele für unmittelbare Adressierung. 








38 


A9 00 LDA 4509 
A2 AB LDX #$AQd 
AB FF LDY #$FF 


1999: 
1992: 
1905: 
1997: 
109A: 
199C: 


19PF: 
1911: 
1012: 
1913: 
1915: 
1917: 


1919: 
101C: 
101F: 
1922: 
1924: 
1926: 
1928: 


20 
20 


1 
2 
3 
4 
5 
6 
7 
8 
9 


;lade A mit dem Byte $P@ (löscht A) 
‚lade X mit dem Byte $Aß 
;lade Y mit dem Byte $FF 


#* DEMO: Adressierungsarten 


* 


en elder ae 


“ Fl 


NUMBER3 


* 


F2 


EQU 


EQU 


EQU 
EQU 
EQU 
EQU 


LDA 
STA 
LDY 
STY 
LDX 
STX 


F3 


$09 
NUMBER] 
$91 
NUMBER2 
$92 
NUMBER3 


+50 


ZEROl 
ZERO2 
ZERO3 


NUMBER] 
NUMBER2 
NUMBER3 
ZEROl 
ZERO2 
ZERO3 


;‚F4 
‚Ursprung 


;Label 
‚Label 
;Label 
‚Label 
;Label 
‚Label 


;Nullseite 
‚absolut 
;‚Nullseite 
‚absolut 
;Nullseite 
‚absolut 


‚unmittelbar 
‚übertragen 
‚übertragen 
;Nullseite 
;Nullseite 
;Nullseite 


‚absolut 
‚absolut 
‚absolut 
‚Nullseite 
;‚Nullseite 
;Nullseite 


drei Buchstaben bestehen (obligato- 
risch). Z. B. ist „LDA“ das Mnemonic und 
„AD“ der entsprechende hexadezimale 
Op-Code für eine der möglichen Adres- 
sierungsarten, S. u. 


Feld 3: Der „Operand‘“ ist die Adresse 
oder Speicherstelle, auf die sich der Be- 
fehl bezieht (obligatorisch). 


Feld 4: „Comment“ ist ein Kommentar, 
der üblicherweise durch ein Semikolon 
von den vorangehenden Feldern abge- 
grenzt wird (kann entfallen). 


Es sind zwei Typen von Labels zu unter- 
scheiden: 


a) „START“ und „END“ sind z.B. impli- 
zite oder interne Labels, die sich auf 
Speicherstellen innerhalb des Pro- 
gramms selbst beziehen, wobei der As- 
sembler die absoluten Adressen dieser 
Speicherstellen in Abhängigkeit vom 
Programmursprung selbst errechnet. 


b) „JADDRESS1“ und „ADDRESS2“ 
sind z.B. explizite oder externe Labels, 
die sich auf Adressen beziehen, die 
außerhalb des eigentlichen Programms 
liegen. Sie sollten durch EQU-Zeilen zu 
Beginn des Programms definiert wer- 
den. 


Ferner ist der Unterschied zwischen ei- 
nem Label und einem Label-Feld zu be- 
achten. Wie aus Tabelle 3 ersichtlich, 
kann ein Label sowohl in Feld 1 wie Feld 
3 vorkommen. Das gleiche Label, z. B. 
„ADDRESS1‘“, darf innerhalb desselben 
Programms beliebig oft in Feld 3 auftau- 
chen, doch darf es nur ein einziges mal 
in Feld 1 (= Label-Feld) implizit oder ex- 
plizit definiert werden. 


Jedes Assemblerprogramm muß mit ei- 
ner ORG-Definition des Programmur- 
sprungs beginnen und sollte mit dem 
Mnemonic RTS (= return from subrouti- 
ne) enden. 


7 Elementare Adressierungsarten 


Tabelle 4 zeigt, daß der 6502 nur 56 
Standard-Mnemonics umfaßt. Ein Be- 
fehl wie z.B. „LDA“ kann jedoch in ver- 
schiedenen Adressierungsformen ver- 
wendet werden, so daß die Zahl der Op- 
Codes erheblich größer ist. Insgesamt 
gibt es 13 Adressierungsarten, von de- 
nen die vier einfachsten im folgenden 
beschrieben werden. 


2.1 Absolute Adressierung 


Hier folgt dem Op-Code eine 2-Byte- 
Adresse in der bereits bekannten, typi- 
schen 6502-Form („low byte first‘). 

2.2 Nullseite-Adressierung 


Die ersten 256 Bytes des Speichers 
($0000 — $O0OFF) werden, wie ebenfalls 


Peeker 7/85 


bereits bekannt, Nullseite oder Zero- 
Page genannt. Bei der Nullseite- 
Adressierung ist das höherwertige Byte 
stets $00, d. h. anstelle von $0000 oder 
$00FF (00000 oder 00255) kann $00 oder 
$FF (0 oder 255) stehen. Die Nullseite- 
Adressierung verwendet deshalb immer 
1-Byte-Adressen. 


2.3 Unmittelbare Adressierung 


Die unmittelbare (immediate) Adressie- 
rung bezieht sich auf dasjenige Byte, 
das unmittelbar dem Op-Code folgt, 
28: 


1000: A9 11 LDA #$11 


Angenommen, die Speicherstelle $1000 


enthalte $A9 und die Speicherstelle 


$1001 enthalte $11. „A9Y“ als Op-Code 
besagt, daß der Akkumulator mit dem 
Byte zu laden ist, das unmittelbar auf 
„Ag“ folgt, also mit „11“. Die unmittelba- 
re Adressierung wird im Quell-Code 
durch das vorangestellte Nummernzei- 
chen (Doppelkreuz) gekennzeichnet. 


2.4 Implizierte Adressierung 
Die implizierte (implied) Adressierung 


bezieht sich auf überhaupt keine Adres- 


se im Speicher, sondern z. B. auf die Re- 
gister selbst. Wird etwa der Inhalt des 
Akkumulators in das Index Register X 
übertragen, werden keinerlei Speicher- 
stellen berührt. 


Beispiele für implizierte Adressierung. 


transfers Ato X 
transfers Xto A 


transfers A to Y 
transfers Yto A 





Enthält z.B. A $FF, bewirkt der Befehl 


TAX, daß $FF nach X übertragen wird. 
Nach Ausführung von TAX befindet sich 
der Wert $FF sowohl in A wie auch in X. 


Es sei darauf hingewiesen, daß Befehle 
der Art TXY oder TYX nicht zu dem 6502- 
Befehlssatz gehören. 


Der Befehl 
60 RTS 


ist ein weiteres Beispiel der implizierten 
Adressierung, die dem BASIC-Befehl RE- 
TURN oder END entspricht. 


Nebenstehende „Demo“ faßt die bespro- 
chenen Adressierungsarten in einem Ge- 
samtbeispiel zusammen. 


‚return from subroutine 


8 Tabelle 4: 6502 Mnemonics ... 
Die Verwendung dieser Tabelle sei am 


Beispiel des LDA-Befehls bei der absolu- 
ten Adressierung erläutert. In der Spalte 


Peeker 7/85 


„Absol.“ ist „AD“ als Op-Code für das 
Mnemonic „LDA“ zu finden. Rechts von 
„AD“ steht die Zahl „4“, die besagt, daß 
dieser Befehl 4 Mikroprozessor-Takte er- 
fordert. Der 1 MHz 6502 Mikroprozessor 
schafft 1 Million Takte pro Sekunde, d.h. 
1 Takt benötigt 1 us. Anders formuliert, 
läßt sich etwa der Befehl LDA $1000 
theoretisch 250.000mal pro Sekunde 
ausführen. 


In der letzten Zeile der Tabelle (No. of 
Bytes) ist in Spalte „Absol.‘“ vermerkt, 
daß dieser Befehl 3 Bytes im Speicher 
benötigt (1 Byte für den Op-Code und 2 
Bytes für die Adresse). 


Teil 3 


9 Interne und externe Labels 
Im vorangehenden Abschnitt wurde be- 


halb desselben bezieht. Externe Labels 
werden üblicherweise durch EQU-Glei- 
chungen am Anfang des Assemblerpro- 
gramms als absolute Adressen definiert, 
während die tatsächlichen Adressen in- 
terner Labels vom Programmursprung 
(ORG) abhängen. Interne Labels spielen 
eine große Rolle bei bedingten Verzwei- 
gungen. 


ORG $1000 

EXTLBL EQU $2000 
LDA EXTLBL 
CMP #%$00 ;siehe unten 
BEQ  INTLBL;siehe unten 
LDA * $00 

INTLBL RTS 


10 Vergleiche und bedingte 
Verzweigungen 


Für jedes Register A, X und Y gibt es je 
einen Vergleichsbefehl für die verschie- 
denen Adressierungsarten: 


reits zwischen internen und externen La- EN : HR he f a e h 
bels unterschieden. Zur Rekapitulation: L wi era ST egal 
Ein externes Label bezieht sich auf eine er 
Speicherstelle außerhalb des Assem- CPX #$FF; vergleicht X mit $FF 
blerprogramms, während sich ein inter--r CPX $1000; vergleicht X mit Speicher- 
nes Label auf eine Speicherstelle inner- stelle $1000 
1 ORG $1999 Demo 1 
2 Er 
3 “ Indizierte Adressierung 
4 * 
1pp9: A9 29 5 START LDA +$29 
1062: 8D PB 20 6 STA $2990 
1005: A9 39 7 LDA +#$39 
1007: 8D 90 30 8 STA $39909 
10BA: A2 99 9 LDX #99 
1B9C: AB OB 19 LDY #99 
1B0E: BD BB 28 11 LDA $2009,x 
1811: 9D BB AB 12 STA $4009,X ;Ad09: 20 
1014: BI BB 39 13 LDA $3999,Y 
1017: 99 90 59 14 STA $5999,Y ‚5009 :39 
15 * 
16 # Inkrement und Dekrement 
17 » 
1ß1A: EE 0 48 18 INC $4999 ‚A009: 21 
1d1D: CE BB 58 19 DEC $5999 ‚5000:2F 
1020: BD OB 48 29 LDA $4999,x 
1023: E8 21 INX 
1624: 9D PB AB 22 STA $4999,X ;A001:21 
1027: B9 00 50 23 LDA $5909,Y 
102A: C8 24 INY 
102B: 99 00 50 25 ı STA $5909,Y ;5001:2F 
26 [2 
27 «+ Übertrag (Wrap-around) 
28 * 
102E: A2 FF 29 LDX 4#$FF 
1039: EB 39 INX :X:09 
1031: Ad 90 31 LDY +$99 
1033: 88 32 DEY ;Y:FF 
33 = 
34 * vergleichen und verzweigen 
35 ” 
1034: BD PB 50 36 LDA $5999,x 
1037: C9 39 37 CMP_ +$39 
1039: FB 92 38 BEQ EQUAL 
1P3B: DB 3 39 BNE NOTEQUAL 
1P3D: A9 99 48 EQUAL LDA +#$99 
103F: 69 al RTS 
1040: A9 91 42 NOTEQUAL LDA +$01 
1042: 69 43 RTS 


39 


CPY # $FF; vergleicht Y mit $FF 
CPY $1000; 
stelle $1000 


Auf Vergleiche folgt üblicherweise ein 
bedingter Verzweigungsbefehl, z.B. BEQ 
(= branch on equal = verzweige, falls 
gleich) oder BNE (= branch on not equal 


= verzweige, falls ungleich), die nachfol- . 


gend beschrieben werden. 


EXAMPLE1 ORG 
EXTLBL EQU 
LDA 
CMP 
BEQ 
LDA 
RTS 
LDA 
RTS 


$1000 
$2000 
EXTLBL 
# $FF 
EXIT2 
EXIT1 # $01 ;NOT EQUAL 


EXIT2 # $00 ;EQUAL 


In EXAMPLE1 wird A mit dem Byte der 
Speicherstelle EXTLBL geladen, an- 
schließend wird A mit $FF verglichen. 
Falls EXTLBL $FF enthält, wird nach 
EXIT2 verzweigt. Andernfalls fährt das 


Demo 2 1 

2 

3 

4 

5 

5 

7 

8 

9 

19 

11 

1009: A2 99 12 
1062: A9 99 13 
1004: 9D 90 20 14 
1007: E8 15 
1008: EB 90 16 
1004: DB FB 17 
18 
19 
29 

21 

1d0C: A2 90 22 
1B0E: BA 23 
1pßF: 9D BB 28 24 
1912: E8 25 
1813: DO FA 26 
27 
28 
29 

1015: A9 99 39 
1817: A2 FF 31 
1819: 9D 96 28 32 
1B1C: CA 33 
181D: EB FF 34 
1d1F: DB FB 35 
36 
37 
38 
39 

1821: A9 99 40 
1023: AA 41 
1024: 9D 00 20 42 
1027: CA 43 
1028: D® FA 44 
102A: 69 45 


40 


vergleicht Y mit Speicher- 


Programm mit EXIT1 fort. Die Befehlsfol- 
ge „LDA EXTLBL CMP #$FF BEQ 
EXIT2“ entspricht dem folgenden 
BASIC-Programm: 


10 A = PEEK (8192) 

20 IFA = 255 THEN GOTO 40 
30 PRINT „EXIT1“ : END 

40 PRINT „EXIT2“ : END 


EXAMPLE2 ORG $1000 

EXTLBLI EQU $2000 

EXTLBL2 EQU $3000 
LDX EXTLBL{ 
CPX EXTLBL2 
BNE EXIT2 

EXIT1 LDA #$00 
RTS 

EXIT2 LDA #$01 
RTS 


Beim EXAMPLE2 wird EXTLBL1 mit 
EXTLBL2 verglichen, wobei hier eine 
Verzweigung nur dann erfolgt, falls 
EXTLBL1 ungleich EXTLBL2 ist. 

Der 6502 läßt auch eine Verzweigung oh- 


ORG $1998 


= 

* DEMO 2: $2000-$2ßFF löschen 

* 

*# LOOP1/LOOP2 —- Vorwärtsschleifen 
# LOOP3/LOOP4 — Rückwärtsschleifen 
* 

ADDRESS EQU $2999 

EZ 


* LOOP1l löscht $2900-$29FF 
* 
+$09 


+$09 
ADDRESS, X 


LDX 
LDA 
STA 
INX 
CPX 
BNE 


LOOP1 


+$09 
LOOP1 


* 

« LOOP2 löscht $2990-$29FF 

# (etwas schneller als LOOPI) 
= 

LDX 
TXA 
STA 
INX 
BNE 


+$09 


LOOP2 ADDRESS, X 


LOOP2 


E 3 

* LOOP3 löscht $2999-$20FF 
E 

LDA 
LDX 
STA 
DEX 
CPX 
BNE 


+$09 
+$FF 
LOOP3 ADDRESS, X 
#$FF 
LOOP3 


= 

* LOOP4 löscht $2998-$29FF 

« (etwas schneller als LOOP3) 
» 

LDA 
TAX 
STA 
DEX 
BNE 
RTS 


4509 
LOOP4 ADDRESS, X 


LOOP4 


ne vorausgehenden Vergleich zu. In die- 
sem Fali bedeutet BEQ = verzweige, 
falls das zuletzt angesprochene Regi- 
ster gleich Null, und BNE = verzweige, 
falls das Register ungleich Null ist. 


oder LDY $2000 
BNE LABEL2 


LDY $2000 
BEQ LABEL1 


11 Inkrementieren und Dekremen- 
tieren 


Speicherstellen und Register können in- 
krementiert (um 1 erhöht) und dekremen- 
tiert (um 1 vermindert) werden. Ange- 
nommen, der Wert von X sei $10, dann 
würde der Befehl INX (= inkrementiere 
X) X von $10 auf $11 erhöhen. Im einzel- 
nen gibt es folgende Inkrement-Dekre- 
ment-Befehle: 


INC $2000; erhöht Speicherstelle $2000 
um 1 

DEC $2000; vermindert Speicherstelle 
$2000 um 1 


INX; erhöht X um 1 
DEX; vermindert X um 1 


INY; erhöht Y um 1 
DEY; vermindert Y um 1 


Die Befehle „INA“ (inkrementiere A) und 
„DEA“ (dekrementiere A) existieren nicht 
und müssen bei Bedarf simuliert wer- 
den: 

TAY oder TAY 


INY DEY 
TYA TYA 


Was geschieht nun, wenn z.B. Y $FF ent- 
hält und inkrementiert oder Y $00 enthält 
und dekrementiert wird? 


LDY #$FF 
INY Y.=00 
LDY #$00 
DEY ‚Y=FF 


Im ersten Fall nimmt Y den Wert $00, im 
zweiten $FF an (Überlauf, ,„Wrap- 
around‘). 


12 Absolutes, indiziertes Laden und 
Speichern 


Absolute, indizierte Adresse bedeutet: 
Tatsächliche Adresse = absolute 
Adresse + Wert des jeweiligen Indexre- 
gisters (X oder Y). Beim EXAMPLE1 ist 
die absolute Adresse EXTLBL = $2000 
und der Wert von X = $05, LDA 
EXTLBL,X entspricht mithin LDA $2005. 
Bei EXAMPLE2 hat Y den Wert $00, LDA 
EXTLBL,Y ist also gleichbedeutend mit 
LDA $2000 (Spezialfall). Mit der absolu- 
ten, indizierten Adressierung kann ein 
Speicherbereich von $100 oder 256 
Bytes (= Page = Seite) angesprochen 
werden. 


Peeker 7/85 


EXAMPLE1 ORG $1000 

EXTLBL EQU $2000 
LDX # $05 
LDA EXTLBL,X 
RTS 


EXAMPLE2 ORG $1000 

EXTLBL EQU $2000 
LDY # $00 
LDA EXTLBL,Y 
RTS 


13 Schleifen 


Assemblerschleifen entsprechen weit- 
gehend den FOR-NEXT-Schleifen in BA- 
SIC. Angenommen, man wollte den Spei- 
cherbereich $0300 — $%0302 (dezimal 
768-770) nach $0303—-$0305 (dezimal 
771-773) verschieben (= duplizieren), 
würde dies in BASIC so aussehen: 


FORX = 0 TO 3: POKE 771 + X, PEEK 
(768 + X): NEXT X 


In Assembler wäre folgendes Programm 
zu. schreiben: 


ORG $1000 
EXTLBL1 EQU $0300 
EXTLBL2 EQU $0303 
INITLP  LDX #800 
LOOP LDA EXTLBL1,X 

STA EXTLBL2,X 
INCR INX 

CPX # $03 

BNE LOOP 
EXIT RTS 


0300 0301 0302 0303 0304 0305 vor- 
FF- FF FF 00 00.00 .: her 


0300 0301 0302 0303 0304 0305 nach 
FF FF OFF OFFOFFOFF her 


Zum besseren Verständnis des Pro- 
grammflusses, wollen wir die Schleifen 
Schritt für Schritt untersuchen: 


LOOP 0: Bei INITLP wird das X-Register 
initialisiert (X = 0). 


LOOP 1: Im ersten Schleifendurchgang 
ist X = 0, mithin EXTLBL1,X = $0300 
und EXTLBL2,X = $0303. Bei INCR wird 
Xum1(0 + 1 = 1) erhöht und mit 3 ver- 
glichen. Da X noch ungleich 3 ist, wird 
die BNE-Verzweigung nach LOOP aus- 
geführt. 


LOOP 2: Im zweiten Durchgang ent- 
spricht X = 1 und damit EXTLBL1,X = 
$0301 bzw. EXTLBL2,X = $0304. X wird 
wiederum um 1 auf jetzt 2 erhöht, ist je- 
doch weiterhin ungleich 3, so daß erneut 
die BNE-Verzweigung nach LOOP er- 
folgt. 


Peeker 7/85 


LOOP 3: Im dritten und letzten Durch- 
gang gilt X = 2, also EXTLBL1,X = 
$0302 und EXTLBL2,X = $0305. X wird 
wiederum um 1 auf jetzt 3 erhöht und mit 
3 verglichen. DaX = 3 ist, findet die 
BNE-Verzweigung jetzt nicht mehr statt 
und das Programm endet mit RTS. 


Demo 1 faßt die neuen Befehle in leicht- 
verständlicher Weise zusammen, wäh- 
rend Demo 2 als praktisches Beispiel 
zeigt, wie man einen Speicherbereich 
von 256 Bytes löscht, d.h. auf Null setzt. 


Teil 4 


Im letzten Abschnitt haben wir nur die 
Vergleiche „gleich“ und „ungleich“ be- 
sprochen. Insgesamt sind folgende Ver- 
gleiche möglich: | 


nr M BEQ JA 
A<>M BNE JA 
A< M BCC JA 
A>=M BCS JA 
A> M BEQ NEIN 
BCS JA 
ASe M BCC JA 
BEQ JA 


A steht für Akkumulator (und ersatzwei- 
se für die beiden anderen X- und Y- 
Register). M steht für Memory, d. h. Spei- 
cherstelle oder Vergleichswert. 


Aus der Übersicht sind zwei neue Befeh- 
le ersichtlich, nämlich BCC und BCS. 
BCC bedeutet eigentlich Branch on car- 
ry clear (verzweige, falls Überlauf-Flag 
= 0, d. h. gelöscht oder zurückgesetzt 
ist) und BCS ist die Abkürzung für 
Branch on carry set (verzweige, falls 
Überlauf-Flag = 1, d. h. gesetzt ist). Da 
BCC sachlich für „verzweige, falls klei- 
ner‘ steht, verwendet man auch oft das 
Mnemonic BLT (Branch on lower than). 
Umgekehrt steht BCS sachlich für ‚„ver- 
zweige, falls größer oder gleich‘, so daß 
sich hierfür das nicht-standardisierte 
Mnemonic BGE (branch on greater or 
equal) eingebürgert hat. Befehle in der 
Art „verzweige, falls größer‘ und „ver- 
zweige, falls kleiner oder gleich‘ gehö- 
ren nicht zum 6502-Befehlssatz und 
müssen deshalb durch Doppelinstruktio- 
nen simuliert werden. 


Für die praktische Programmierarbeit ist 
es nach meinen Erfahrungen für den As- 
sembleranfänger besser, wenn er über 
die sogenannten Status-Flags über- 
haupt nicht nachdenkt, sondern statt 
dessen mit der obigen Vergleichstabelle 


arbeitet. Für die Theoretiker sei jedoch 
nachfolgend die Funktionsweise des 
Carry-Flags bei BCC und BCS erläutert: 


T; 2. 3: 
A 10 09 10 
M —09 —10 —-10 
+01 —01 +00 
C=+ Der C=+ 
Get G=0 Ge’ 


Von den obigen drei Subtraktionen 
(10—9, 9-10 und 10— 110) führt die zwei- 
te zu einem Überlauf bzw. zu einem Vor- 
zeichenwechsel. Nehmen wir nunmehr 
an, daß der 6502-Prozessor bei jedem 
Vergleich intern eine Subtraktion von A 
und M vornimmt und das Überlauf-Flag 
entsprechend setzt, und zwar dergestalt, 
daß bei einem Vorzeichenwechsel C auf 


‘0 und bei keinem Vorzeichenwechsel C 


auf 1 gesetzt wird. Dann wird deutlich, 
weshalb bei den nachfolgenden Beispie- 
len ein Sprung zu den Labels JA bzw. 
NEIN erfolgt: | 


A<M? A>=M? 
LDA # 10 LDA # 10 ;A 
CMP # 09 CMP # 09 ;M 
BCC NEIN BCS JA 
LDA #09 LDA #09 
CMP #10 CMP # 10 
BOCOCJA BCS NEIN 
LDA #10 LDA #10 
CMP #10 CMP # 10 
BCC NEIN BCS JA 


Genau genommen sind die Erläuterun- 
gen zu den Subtraktionen zwar praktisch 
richtig, jedoch theoretisch falsch, weil 
eigentlich das A vom M subtrahiert und 
bei 6502-Subtraktionen mit „invertiertem 
Borgen‘“ gearbeitet wird, wodurch die 
„normalen‘‘ Subtraktionsregeln quasi 
auf den Kopf gestellt werden. Hierzu 
schreibt LAncE A. LEVENTHAL in „6502 As- 
sembly Language Subroutines“, Berke- 
ley 1982, S. 2: „The Carry Flag actsasan 
inverted borrow in subtraction. A Com- 
pare instruction clears the Carry if the 
operation requires a borrow and sets it if 
it does not. Thus the Carry has the oppo- 
site meaning after comparison on the 
6502 than it has on most other compu- 
ters.“ 


Da wir gerade bei der Theorie sind, soll 
kurz auf eine andere Tatsache aufmerk- 
sam gemacht werden, die ebenfalls in 
der Programmierpraxis weitgehend ig- 
noriert werden kann. Betrachten wir zu 
diesem Zweck den folgenden Pro- 
grammauszug: 


41 











1 ORG $300 
2 * 
3 * Man beachte bei diesem 
4 * Test die auf BEQ folgende 
5 * hexadezimale Sprungadresse 
6 %* 
2300: A8 7 L1 TAY 
0301: FO FD 8 BEQ L1l 
\ 9 * 
0303: FO FF 10 L2 BEO L2+1 
11 e 
2305: F@ FE 12 53 BEQ L3 
43 R 
2307: F® 00 14 BEQ L4 
0309: A8 25 L4 TAY 
16 * 
B3Q0A: FO 08l L7 BEQO L5 
B30C: A8 18. TAY 
B30D: A8 19 L5 TAY 
20 * 
B30E: FO 22 21 BEQ L6 
 0831@: AB 22 TAY 
e3ll: AB 23 TAY 
8312: A8 24 L6 TAY 
0313: 6® 25 RTS 
1 ORG $1009 
2 * | 
3 * Vergleich-Demo 
4 * 
5 * Welche Stelle muß geändert 
6 * werden, damit das Programm 
7 * bei Branch4 ankommt? 
8 * 
10080: A9 AQ 9 LDA #SA0 
10802: C9 BQ 18 CMP #5SB® 
1004: 908 03 11  BCC DBRANCHl 
1006: A9 01 12 LDA #1 
1008: 69 33 RTS 
10089: C9 BO 14 BRANCHl CMP #5SBP® 
180B: B® 093 15 BCS BRANCH2 
1B0D: A9 92 16 LDA #2 
1B0F: 69 17 RTS 
1810: C9 AB 18 BRANCH2 CMP #SA9 
1812: F@ 093 19 BEQ DBRANCH3 
1814: A9 93 20 LDA #3 
18016: 69 21 RTS 
1817: C9 B® 22 BRANCH3 CMP #5SB0® 
1819: D® 03 23 BNE PBRANCH4 
181B: A9 094 24 LDA #4 
1801D: 68 25 RTS 
101E: A9 95 26 BRANCH4 LDA #5 
1020: 69 27 RTS 





42 


030A: F001 LABEL1I BEQLABEL2 
030C: A8 TAY 
030D: AA LABEL2 TAX 


„FO“ ist der Op-Code für BEQ und „A8“ 
bzw. „AA“ sind die Op-Codes für TAY 
bzw. TAX. Nach „FO“ steht merkwürdi- 
gerweise die hexadezimale Zahl „01“. 
Welche Bedeutung hat sie? Dem Quell- 
Code ist zu entnehmen, daß ein relativer 
Vorwärtssprung zum LABEL2 erfolgt. 
„FO 01“ bilden als zusammengehörige 
Byte-Folge den Befehl BEQ LABEIL2. 
Würde dieser Sprung nicht ausgeführt, 
weil die Bedingung A = M nicht erfüllt 
ist, dann würde der prozessorinterne 
Programmzähler nunmehr an der Spei- 
cherstelle $030C angelangt sein. Addie- 
ren wir $030C + $01, dann erreichen wir 
die Speicherstelle $030D, also die Stelle 
von LABEL2. Mithin können wir festhal- 
ten, daß nach dem Vergleichs-Op-Code 
eine hexadezimale Zahl steht, die die An- 
zahl der Bytes angibt, um die der Pro- 
grammzähler versetzt werden muß, da- 
mit der BEQ-Sprung an der gewünschten 
Speicherstelle anlangt. Dieses „Verset- 
zen“ wird als Offset bezeichnet. 


Was passiert jedoch, wenn kein 
Vorwärts-, sondern ein Rückwärtssprung 
stattfinden soll. Betrachten wir hierzu 
das nachfolgende Beispiel: 


0300: A8 LABEL1 TAY 
0301: FOFD LABEL2 BEQLABELI 
0303: AA TAX 


Würde die A = M Bedingung hier nicht 
erfüllt, dann würde wiederum der näch- 
ste Befehl der Speicherstelle $0303 ab- 
gearbeitet, nämlich TAX. Was geschieht 
jedoch, wenn A = M ist. Dann muß ein 
Rückwärtssprung nach LABEL2 erfol- 
gen. Wenn man mit dem Zählen ab der 
Speicherstelle $0303 beginnt, gelangt 
man durch „Bis-drei-Zählen“ zur Spei- 
cherstelle $0300. Mithin müßte theore- 
tisch in der Speicherstelle $0302 „03“ 
stehen. „03“ würde jedoch +3 bedeu- 
ten, während hier „FD“ —3 bedeutet. 


Fassen wir zusammen: Bei relativen 
Sprüngen steht nach dem Op-Code für 
BEQ, BNE, BCC und BCS eine entweder 
positive oder negative hexadezimale 
Offset-Zahl, um die der Programmzähler 
ab der der Offset-Zahl folgenden Spei- 
cherstelle vorwärts oder rückwärts zum 
Sprung-Label versetzt werden muß. He- 
xadezimale Zahlen im Bereich $00—$7F 
werden als positiv und sinngemäß hexa- 
dezimale Zahlen im Bereich $80—-$FF 
als negativ angesehen, und zwar einzig 
und allein bei den Vergleichsbefehlen: 


Peeker 7/85 


80 — 128 


ED 
ER: 
4 
0 0 
er 
2 2 
8 3 
DE 
IF 127 


Aus der Kurztabelle ist ersichtlich, daß 
relative Sprünge nur bis 127 Bytes vom 
Offset-Ursprung entfernt sein dürfen. 
Diese Beschränkung macht es oft erfor- 
derlich, daß man die Programmlogik um- 
drehen muß, da Vorwärtssprünge über 
127 und Rückwärtssprünge über 128 


Speicherstellen hinaus vom Assembler 


als „Bad Branch“ zurückgewiesen wür- 
den. Dies geschieht durch die Verwen- 
dung des absoluten Sprungs JMP, der 
im nächsten Kapitel beschrieben wird. 
Im übrigen kann man den Offset igno- 
rieren, da dieser vom Assembler stets 
automatisch ausgerechnet wird. 


Teil 5 


In den bisherigen Abschnitten haben 
wir bereits etwa die Hälfte der 6502-Be- 
fehle besprochen, nämlich Lade- und 
Speicherbefehle (LDA, LDX, LDY; STA, 
STX, STY), Übertragungsbefehle (TAX, 
TAY, TXA, TYA), Vergleichsbefehle 
(CMP, CPX, CPY), bedingte Verzwei- 
gungsbefehle (BEQ, BNE, BCC, BCS), 
Inkrementier- (INC, INX, INY) und De- 
krementierbefehle (DEC, DEX, DEY). 
Ferner wurden die meisten Adressie- 
rungsarten behandelt, und zwar absolu- 
te Adressierung (LDA $1000), Nullseite- 
Adressierung (LDA $00), indizierte abso- 
Iute Adressierung (LDA $1000,X oder 
LDA $1000,Y), implizite Adressierung 
(TAY, TXA usw.) sowie die noch nicht ex- 
pressis verbis benannte relative Adres- 
sierung. Letzere ist die Adressierungs- 
art bei allen bedingten Verzweigungsbe- 
fehlen (BEQ, BCC usw.). 


Trotzdem waren wir bislang nicht in der 


Lage, „sinnvolle“ Programme zu erstel- 
len, weil einige der mächtigeren Befehle 


Peeker 7/85 


noch nicht besprochen wurden. Eine 
sehr wichtige Gruppe von Befehlen be- 
trifft den sogenannten Stack, auch als 
Stapel oder „Keller“ bezeichnet. Hierzu 
betrachten wir das nachfolgende erwei- 
terte Modell des 6502-Prozessors: 


Im ersten Schritt wird der Programmzäh- 
ler mit der Adresse $1000 geladen. Dann 
holt sich der Prozessor den Op-Code 4C 
= JMP, lädt den Programmzähler mit 
der darauffolgenden Adresse $2000 und 
springt zu $2000. Dort holt sich der Pro- 











Die jeweils 1 Byte großen Indexregister 
X und Y sowie der Akkumulator als all- 
gemeines Datenregister sind bereits 
bekannt. Der Programmzähler ist ein 
2 Bytes umfassendes Register und ent- 
hält die Adresse der Speicherstelle des 
jeweils als nächstes vom Prozessor zu 
bearbeitenden Befehls. Beispiel: 


1000: AD 00 20 LDA $2000 
1003: 8D 00 30 STA $3000 


Nehmen wir an, der Prozessor sei be- 
reits bei Speicherstelle $1000 ange- 
langt. Dann enthält der Programmzähler 
die Adresse LL- HH, Low Byte — High 
Byte, 00-10 = $1000, d.h. der Prozes- 
sor ist auf die Adresse des Op-Codes AD 
= LDA gerichtet. Dieser Befehl wird in 
Verbindung mit den darauffolgenden 2 
Adreßbytes interpretiert und dann ent- 
sprechend ausgeführt. Anschließend 
wird der Programmzähler auf Speicher- 
stelle $1003 erhöht. Bei bedingten (rela- 
tiven) Verzweigungen wird er mit der re- 
lativen Adresse geladen, während er bei 
unbedingten (absoluten) Verzweigun- 
gen mit der absoluten Adresse der Spei- 
cherstelle, zu der der Sprung erfolgen 
soll, geladen wird. Es gibt zwei Arten von 
absoluten Verzweigungen oder Sprün- 
gen: Ä 


JMP = Jump (entspricht GOTO in 
BASIC) 

JSR = Jump Subroutine (entspricht 
GOSUB in BASIC) 


RTS = Return from Subroutine 
(entspricht RETURN in BASIC) 

RTS = entspricht als letztes RTS 
eines Assemblerprogramms 
END in BASIC 


Betrachten wir zunächst folgendes Pro- 
gramm: 


1000: 4C 00 20 
1003: 60 


JMP $2000 
RTS 


2000: 4C 03 10 JMP $1003 


6502 


X-Register A-Register Y-Register Stapelzeiger Programmzähler 





zessor den Op-Code 4C, lädt den Pro- 
grammzähler mit der nachfolgenden 
Adresse $1003 und springt zu $1003. 
Hier steht nun RTS, das als letzter Op- 
Code das Assemblerprogramm been- 
det. 


Was geschieht aber mit dem Programm- 
zähler, wenn statt eines JMP ein JSR ge- 


_ wünscht wird. Sehen wir dazu JSR-Bei- 


spiel 1 an: 


JSR-Beispiel 1 


1000: 20 00 20 
1003: 60 











JSR $2000 
RTS 


2000: 60 


RTS 
JSR-Beispiel 2 
OFFE: A2 FF LDX + $FF 
OFFF: 9A IX... 
1000: 20 00 20  JSR .$2000 
RTS 


1003: 60 










2000: 


A9 AA LDA #$AA 
2002: 48 PHA 
2003: 68 PLA 


2004: RTS 





Zunächst wird der Programmzähler mit 
$1000 geladen. Dann holt sich der Pro- 
zessor den Op-Code 20 = JSR und lädt 
den Programmzähler mit der Adresse 
$2000, zu der gesprungen werden soll. 
Da der Programmzähler jedoch nur je- 
weils eine einzige Adresse enthalten 
kann, erhebt sich die Frage, wie sich der 
Prozessor „merken“ kann, daß er nach 
RTS = RETURN bei Adresse $2000 wie- 
der zu derjenigen Adresse zurückfindet, 
die auf den Befehl JSR $2000 folgt. Zu 
diesem Zweck unterhält der Prozessor 
einen 256 Bytes umfassenden Stapel, 
der bei allen 6502-Mikrocomputern den 
Speicherbereich $0100 bis $O1FF ein- 
nimmt. Dieser Stapel wird rückwärts, 
d.h. ab $OIFF, mit den RTS-Rücksprung- 
adressen gefüllt. Neben dem Stapel gibt 


43 





Beispiel 





1 ÖRG $1000 1056: 20 DA FD 79 JSR HEXOUT 
2 * 1059: 20 864 10 80 JSR  KOMMA 
3 * Addition und Subtraktion 81 > 
4 % Semzmsmsasaas2os2222222=S= : 82 * Verschiedene fehlerhafte 
ee) * 83 * Additionen und Subtraktionen 
6 * HEXOUT zeigt Wert im A-Register 84 * 
7 * als hexadezimale Zahl an. 85 * Nach SEC 3 + 1 = 5! hex $05 
8 * HEXOUT ändert nur das A-Register 8% . 
9 * 105C: 38 87 SEC 
10 * CHROUT zeigt Character in 105D: AP 03 88 LDA #3 
11 * A-Register als ASCII-Zeichen an. 105F: 69 01 89 ADC #1 
i2 * CHROUT läßt alle drei Register 1051: 20 DA FD 90 JSR HEXOUT 
13 * A, X und Y unverändert. 1064: 20 86 10 91 JSR KOMMA 
14. % j FR 
15 * Beides sind ROM-Firmware-Routinen 93 # NEE ELLE: 3». ® 1 hex $01 
16 * des Apple 11c/lle/lI Plus 94 * 
17 * 1067: 18 95 CLC 
18 HEXOUT EQU $FDDA ‚Apple 1068: A9 03 96 LDA #3 
19 CHAROUT EQU %$FDED ‚Apple 106A: EP 01 97 SsBbt #1 
20 %* 105C: 20 DA FD 98 JSR HEXOUT 
21 * 8-Bit-Addition ohne überlauf 10#4F: 20 86 10 99 JSR KOMMA 
22 * 100 * 
23 *10 + 10 = 20 hex #14 101 * überlauf 255 + 1 = 0! hex $00 
24 * 102 * 
23 CLC . 1072: 18 103 ELE 
26 LDA #10 1073: AP FF 104 LDA #255 
27 ADC #10 1075: 69 01 105 ADC #1 
28 JSR HEXOUT ».1077: 20 DA FD 10% JSR HEXOUT 
29 JSR KOMMA 107A: 20 864 10 107 JSR KOMMA 
30 * 109 % 
31 * 8-Bit-Subtraktion ohne "Unterlauf" 110 * "Unterlauf" 0 - 1 = 255! hex $FF 
32 * 111.8 
33 "10 +90 QO hex $00 107D: 38 Ya; SEC 
34 * 107E: A9 00 113 LDA #0 
35 SEC 1080: EP 01 114 SsBCt #1 
36 LDA #10 1082: 20 DA FD 115 JSR HEXOUT 
37 SBC #10 1085: 60 116 RTS 
38 JSR HEXOUT 3 
39 JSR KOMMA 118 %* Unterroutine zum Änzeigen 
40 * 119 * eines Kommas 
41 * 14-Bit-Addition mit überlauf- 120 * 
42 * prüfung. 1086: A9 AC 121  KOMMA LDA #"," 
43 . 1088: 20 ED FD 122 JSR CHAROUT 
4 * 34044 + $3033 = #$7077 108B: 40 123 RTS 
45 * ia % 
46 CLC i25 * Unterroutine zum Anzeigen 
47 LDA #+44 ‚Low 126 * des Wortes "Error:" 
48 ADC #$33 ‚Low 127 %* 
49 STA LL 108C: A2 00 128 ERROR LDX #0 
0 LDA #%40 ‚High 129 2% 
51 ADC #$30 ;High 130 %* 6-stelliges Wort "Error:" 
32 STA HH uch ee 
53 BCC OKAY 108E: BD 9C 10 132 ERRORI LDA ERRWORT ‚X 
55 JSR ERROR 1091: 20 ED FD 133 JSR CHAROUT 
3% DKAYi LDA HH ‚High 1094: EB 134 INX 
37 JSR HEXOUT 1095: EO 06 135 CPX #4 
58 LDA LL ‚Low 1097: DO FS5 136 BNE ERRORI 
59 JSR HEXOUT 1099: &0 137 RTS 
60 JSR KOMMA 138 * 
6i . 139 * Der Pseudo-Opcode HEX 
62 * 16-Bit-Subtraktion mit 140 * reserviert eine Speicherstelle 
63 * "Unterlauf"-Prüfung 141 * mit einem Hexwert. 
64 * 142 * Der Pseudo-Opcode ASC 
65 * $4044 - $3033 = $1011 143 * reserviert einen Speicherraum 
66 * 144 * mit einem String. 
67 SEC nr GE 
68 LDA #44 ‚Low 109A: 00 146 LL HEX 00 
69 SBC #$33 ‚Low 109B: 00 147 HH HEX 00 
70 STA LL 109C: C5 F2 F2 148 ERRWORT ASC "Error:" 
7 LDA #%$40 ‚High 109F: EF F2 BA 
?2 SBC #%30 ‘High 
73 STA HH 
74 BCS DOKAY2 --End assembly-- 
753 JSR ERROR 
76 OKAY2 LDA HH ‚High 162 bytes 
77 JSR HEXOUT 
78 LDA LL ‚Low Errors: 0 
Symbol table - alphabetical order: 

CHAROUT =$FDED ERROR =$108C ERRORi =$108E ERRWORT =$109C 

HEXOUT =$FDDA HH =$109B KOMMA  =$1086 LL =$109A 

OKAY1 =$102A OKAY2  =$104D 

Symbol table - numerical order: 
OKAY =$102A OKAY2  =$104D KOMMA  =$1086 ERROR =$108C 
ERRORI =$108E LL =$109A HH =$109B ERRWORT =$109C 


HEXOUT =$FDDA CHAROUT =$FDED 





44 Peeker 7/85 





100 : >... 1F8 -1F9 IFA: EB: 1FG FD .IEE FE Be 





es den Stapelzeiger, der als eine Art 
X-Register aufgefaßt werden kann und 
der beim Einschalten des Mikrocompu- 
ters oder beim Reinitialisieren des Pro- 
zessors in der Regel auf $FF ($0100,X) 
gesetzt wird. 

Nehmen wir an, der Mikrocomputer sei 
gerade eingeschaltet worden, der Stack 
sei noch leer und der Stapelzeiger sei 
auf $FF initialisiert. Ferner sei der Pro- 
grammzähler auf $1000 eingestellt, wo 
der Befehl JSR $2000 stehen soll. Wie 
bereits bekannt, wird der Programmzäh- 
ler mit der Adresse $2000 geladen. 
Gleichzeitig wird die Rücksprungadres- 
se auf den Stapel geschoben (to push on 
stack), und zwar nicht die eigentliche 
Adresse $1003, sondern $1003 — $01 = 
$1002. High Byte $10 wird in $O1FF und 
Low Byte $02 in $O1FE im Stapel zwi- 
schengespeichert. Vor jeder Zwischen- 
speicherung wird der Stapelzeiger um 1 
vermindert und erst danach das HH- 
oder LL-Byte auf den Stack geschoben. 
Der Prozessor führt also quasi intern ein 
Programm aus, das wir wie folgt simulie- 
ren können: 


DEX ‚decrement 
LDA #$10 ;push 

STA $0100,X 

DEX ‚decrement 
LDA #3$02 ‚push 

STA $0100,X 


Wenn der Prozessor nunmehr bei Spei- 
cherstelle $2000 auf RTS stößt, zieht er 
die Rücksprungadresse vom Stapel, er- 
höht sie um $01 und überträgt sie in den 
Programmzähler. Beachten Sie folgen- 
den Merksatz: 


Decrement before pushing! 
Increment before pulling! 


Neben JSR gibt es noch andere 6502-Be- 
fehle, die den Stapel sowie den Stapel- 
zeiger beeinflussen. 

PHA (= Push accumulator on stack) de- 
krementiert den Stapelzeiger und 


Peeker 7/85 


Beispiel 1 
Initialisierung 
JSR $2000 
RTS 


Beispiel 2 

LDX #$FF 
TXS 

JSR $2000 
LDA #$AA 
PHA 

PLA 

RTS 


schiebt den Inhalt des Akkumulators 
auf den Stack. 


PLA (= Pull accumulator from stack) in- 
krementiert den Stapelzeiger, zieht den 
Inhalt der entsprechenden Stapelspei- 
cherstelle vom Stapel und überträgt ihn 
in den Akkumulator. 


Mit der Befehlsfolge PHA ... PLA läßt 
sich der Akkumulatorinhalt vorüberge- 
hend zwischenspeichern, doch präge 
man sich die goldene Regel ein, daß der 
PLA stets vor dem nächsten RTS statt- 
finden muß, andernfalls würde RTS den 
Akkumulatorinhalt anstelle der Rück- 


. sprungadresse vom Stapel ziehen! 


TSX (Transfer stack pointerto X register) 
überträgt den Inhalt des Stapelzeigers 
in das X-Register. 


TXS (Transfer Xregisterto stack pointer) 
überträgt den Inhalt des X-Registers in 
das Stapelzeigerregister. 


Dabei ist zu beachten, daß der Stapelzei- 
ger nur über das X-Register, also z.B. 
nicht über den Akkumulator, gelesen 
und verändert werden kann. Mit der Be- 
fehlsfolge 


LDX #$FF 
TXS 


läßt sich der Stapelzeiger neu initialisie- 
ren (siehe JSR-Beispiel 2). 


Teil 6 


Bevor wir uns der hexadezimalen Addition 
und Subtraktion zuwenden, werfen wir zu- 
nächst einen Blick auf die dezimale Addi- 
tion, wie sie ein „ABC-Schütze“ durch- 
führt (Kasten 1). 


Fall 1 erfordert keinen Übertrag. Fall 2 ver- 
langt einen Übertrag in der ersten Stelle. 
In Fall 3 sind zwei Überträge nötig; gleich- 
zeitigsehen wir, daß die Addition von zwei 
s-stelligen Zahlen höchstens zu einem 
s + 1-stelligen Ergebnis führt. 


Betrachten wir nunmehr die hexadezimale 
Addition (Kasten 1). Zur Erinnerung: Die 
hexadezimalen Ziffern erstrecken sich von 
$0 bis $F, womit ein Übertrag von $1 erst 
dann notwendig wird, wenn die Summe 
von zwei hexadezimalen Ziffern $F (= de- 
zimal 15) überschreitet. 


In Fall 1 ist wiederum kein Übertrag nötig, 
denn $1 + $1 = $2 und $D + $1 = $E.In 
Fall 2 ist ein Übertrag in der ersten Stelle 
erforderlich, denn$F + $1 = $10.InFall3 
sind zwei Überträge vonnöten. Wir addie- 
ren hier bei der ersten Stelle: $F + $1 = 
$0 plus $1 „im Sinn“, und bei der zweiten 
Stelle$E + $1 + $1 „im Sinn“ = $0 + $1 
„im Sinn“, was in die dritte Stelle übertra- 
gen wird. Auch für die hexadezimale Addi- 
tion gilt, daß die Summe von zwei s-stelli- 
gen Hexzahlen höchstens s + 1-stellig sein 
kann. 


Das Carry-Flag ist das Übertrags-Flag 
oder Übertrags-Bit. Mit dem Befehl CLC 
(Clear Carry) kann der Übertrag gelöscht 
und mit SEC (Set Carry) gesetzt werden. 
Mit dem Befehl ADC (= Add with Carry) 
werden zwei zweistellige Hexzahlen zu- 
sammenaddiert und mit SBC (= Subtract 
with Carry) voneinander subtrahiert. Für 
eine 8-Bit-Addition (= Addition von zwei 
zweistelligen Hexzahlen), die höchstens 
eine zweistellige Hexzahl als Ergebnis ha- 
ben soll, und für die 8-Bit-Subtraktion gel- 
ten stets die in Kasten 2 wiedergegebenen 
Prozeduren. 


Die hexadezimale Addition und Subtrak- 
tion geschieht stets byte-weise und nicht 
nibble-weise (halbbyte-weise). Zum Bei- 
spiel besteht die zweistellige Hexzahl $AO 
aus zwei Nibbles oder zwei Halbbytes $A 
und $0. Sollen nur zwei niederwertige Nib- 
bles, z.B. $A und $B, addiert werden, so 
muß dies in der Form 


CLC 

LDA #3$30A $0HighNibble, 
$A Low Nibble 

ADC #$0B $0High Nibble, 
$B Low Nibble 


vor sich gehen, d.h. die höherwertigen 
Nibbles sind auf Null zu setzen. Bei den 
zwei Beispielen in Kasten 3 werden bei der 
Addition jeweils zwei Nibbles zu einem 
Byte zusammengefaßt. 


45 


Kasten 1 


Fall 2 Fall 3 


19 99 
v 99 
1 13 


90 19:8 


Fall 1 


Zi 
2 


82 


(Überlauf in 3. Stelle) 


Dezimale Addition 


Kasten 2 


CLC 
LDA 
ADC 
BCS 
BCC 


HEXZAHLI1 
HEXZAHL2 
FEHLER 
OKAY 


1-Byte-Addition 


Kasten 3 


Er. Er 
11 11 


$00EFEF 
$001111 


D 1 
11 


Übertrag („Carry“, „im Sinn“) 


E..8 


Fall 3 


DF EF 
11 4 
1 1.4 


FO 100 
(Überlauf in 3. Stelle) 


Carry 


Hexadezimale Addition 





Vor der Addition das Carry löschen 
Summand1 in A-Register laden 
Summand2 zum A-Register hinzuzählen 
Überlauf, falls Summe > $FF 

Kein Überlauf, falls Summe < $FF 


BCS OKAY 


HEXZAHL1 
HEXZAHL2 
FEHLER 


Vor der Subtraktion Carry setzen 
Minuend in A-Register laden 
Subtrahend vom A-Register abziehen 
Unterlauf, falls Differenz < $00 

Kein Unterlauf, falls Differenz > $00 


1-Byte-Subtraktion 


61423 
4369 





SOOFFFF = 
$SOOFFFF = 


65535 
65535 


01 


01 


01 91:00 $010100 = 65792 $SOIFFFE = 131070 


-— 65536 
65534 


- 65536 = 
256 = 


$010000 
$000100 


$010000 
$SOOFFFE 





Beispiele für 2-Byte-Additionen mit Übertrag in drittes Byte 


Kasten 4 
CLC ‚4stellige Addition SEC ‚4stellige Subtraktion 
LDA SUMMANDILL ;Low Byte 1. Summand LDA MINUENDLL ;Low Byte Minuend 
ADC SUMMAND2LL ;Low Byte 2. Summand SBC SUBTRAHLL ;Low Byte Subtrahend 
STA SUMMELL ‚Low Byte Summe STA DIFFERLI. ;Low Byte Differenz 
LDA SUMMAND2HH - ;High Byte 1. Summand LDA MINUENDHH ‚High Byte Minuend 
ADC SUMMAND2HH - ;High Byte 2. Summand SBC -SUBTRAHHH ‚High Byte Subtrahend 
STA SUMMEMM ‚Middle Byte Summe STA DIFFERMM ‚Middle Byte Differenz 
BCC OKAY ‚Summe 4stellig! BCS OKAY ‚Differenz 4stellig! 
ADC +#3$00 ;$00 + Carry 1 addieren SBC +#3$00 ;$00 — Carry O subtrahieren 
STA SUMMEHH -;High Byte Summe; 6stellig! STA DIFFERHH ‚High Byte Differenz; 6stellig! 


2-Byte-Addition 


Wenn b Bytes umfassende Hexzahlen ad- 
diert bzw. subtrahiert werden sollen und 
falls das Ergebnis b+1 Bytes umfassen 
darf, ist die Prozedur aus Kasten 4 anzu- 
wenden. Man beachte, daß stets mit dem 
niederwertigsten Byte zu beginnen ist. 

Das hier abgedruckte ausführliche Bei- 
spiel ist unser erstes, etwas größeres 


46 


2-Byte-Subtraktion 


Assemblerprogramm. Es verwendet sy- 
stemspezifische Routinen. HEXOUT 
(hexadezimaler Output) zeigt den Inhalt 
des Akkumulators als 2stellige Hexzahl 
an. OUT (Charakter Output) gibt das im 
 Akkumulator befindliche Byte als AS- 
Cli-Zeichen aus. Ferner werden zwei 
Pseudo-Opcodes HEX und ASC ver- 


wendet, die bei verschiedenen Assem- 
blern verschiedene Bezeichnungen ha- 
ben können. Schließlich wird erstmals 
am Ende des Listings eine „Symbol 
Table“ abgedruckt, die die im Pro- 
gramm benutzten Labels alphabetisch 
und numerisch, d.h. adreßmäßig, sor- 
tiert zusammengestellt. 


Peeker 7/85 


Im einzelnen werden folgende Beispiele 
durchgerechnet: 


8-Bit-Addition/Subtraktion ohne Überlauf/ 
Unterlauf: Eine Überprüfung des Über- 
laufs/Unterlaufs läßt sich sparen, wenn im 
voraus bekannt ist, daß aufgrund der Wer- 
te keiner möglich ist. 


16-Bit-Addition/Subtraktion mit nicht er- 
wartetem, aber möglichem Überlauf/Un- 
terlauf: Hier soll das Ergebnis im Bereich 
$0000 - $FFFF liegen, also mithin 4stellig 
oder 2 Byte lang sein. Sofern dieser Be- 
reich bei Addition über- bzw. bei Subtrak- 
tion unterschritten wird, führt dies zu einer 
Fehlermeldung. 


Verschiedene fehlerhafte 8-Bit-Additio- 
nen/Subtraktionen: Addition nach SEC, 
Subtraktion nach CLC, Überlauf und Un- 
terlauf. Man beachte, daß ein Mikropro- 
zessor im Gegensatz zu BASIC, PASCAL 
usw. keine „freundlichen“ Fehlermeldun- 
gen wie „OVERFLOW ERROR“, „OUTOF 
RANGE“, „ILLEGAL QUANTITY“ usw. 
ausgibt, wenn tatsächliche Fehler in ei- 
nem Maschinenprogramm auftreten. Viel- 
mehr tut der Prozessor so, als wäre nichts 
gewesen. 


Teil 7 


14 Binärzahlen 


Im letzten Teil wollen wir uns mit einigen 
Bitbefehlen befassen. Ein Mikroprozes- 
sor weiß intern noch nichts von dezima- 
len und hexadezimalen Zahlen, son- 
dern kennt nur Binär- oder Dualzahlen, 
d.h. die Zustände Spannung ein — 
Spannung aus. Eine Binärzahl ist eine 
Positionszahl mit der Basis 2, der zur 
Verdeutlichung in der Regel ein Pro- 
zentzeichen vorangestellt wird. 


Beispiele für zweistellige Binärzahlen: 


%00 = dezimalO 
%01 = dezimal 1 
%10 = dezimal 2 
%11 = dezimal 3 
USW. 


Die vierstellige Binärzahl %1111 errech- 
net sich wie folgt: 


Peeker 7/85 


0. Stelle = 2hoch O * 1 
1. Stelle = 2hoch 1 * 1 
2. Stelle = 2hoch2 * 1 
3. Stelle = 2hoch 3 * 1 


4 
2 
4 
8 


ergibt zusammen 1 +2 +4 +8 = dezi- 
mal 15 = hexadezimal $F. 


Ein Byte kann als eine achtstellige Binär- 
zahl dargestellt werden, wobei die acht 
Bitstellen von rechts nach links und von O 
bis 7 durchnumeriert sind, z. B.: 


76543210 Bitposition 
%11110000 Bitmuster 


Die rechten vier Bits, also Bit 0-3, bilden 
das niederwertige Halbbyte, die linken 
vier, Bit 4-7, das höherwertige. Ein Bit 
kann gesetzt (= 1) oder zurückgesetzt 
(= 0) sein. Die Summe der Bits wird auch 
als Bitmuster bezeichnet. Im Gegensatz 
zu höheren Programmiersprachen wie 
BASIC, Pascal usw. eignen sich die Befeh- 
le eines Mikroprozessors hervorragend zu 
Bitmanipulationen. Die Befehle AND und 
ORA dienen zum Setzen und Zurückset- 
zen (Wegblenden, Löschen) von Bitmu- 
stern, während die Befehle ASL und LSR 
zum Verschieben von Bitmustern verwen- 
det werden. 


15 AND und ORA 


AND = logischer Und-Befehl (and) 
ORA = logischer Oder-Befehl (or A) 


AND undiert den Inhalt des Akkumulators 
A mit einem Bitmuster der Speicherstelle 
M und überträgt das Resultat der Undie- 
rung in den Akkumulator. Nehmen wir an, 
der Akkumulator A enthalte den Wert 
%11111111 und die Speicherstelle M das 
Bitmuster %00001 111. Dann gilt: 


LDA #%11111111 
ANDMEMORY 


%t1111111 = A 
%00001111 = M 


%00001111 = A 
AND setzt bei A diejenigen Bits, die zuvor 
sowohl bei A als auch bei M gesetzt waren. 


Es gilt nachstehende Wahrheitswertta- 
belle: 


AM A 





oo a 
098 - 
o0090., 


ORA setzt bei A diejenigen Bits, die zuvor 
mindestens bei entweder A oder M gesetzt 
waren. 


LDA #%11111111 
ORA MEMORY 


%11111111 A 
%00001111M 


11111111 A 
Für ORA gilt die Wahrheitswerttabelle: 


AM A 





oo... 
oO —-0—- 
Ir 


AND dient damit zum Wegblenden uner- 
wünschter und ORA zum setzen ge- 
wünschter Bits. Nehmen wir an, wir woll- 
ten bei einem im Arbeitspeicher abgeleg- 
ten, 256 Bytes umfassenden Text Bit 7 je- 
des Bytes setzen. Zu diesem Zweck würde 
folgende Schleife genügen: 


LDY #0 


.LOOP LDA MEMORY, Y 


ORA % 10000000 
STA MEMORY, Y 
INY 

BNE LOOP 


Wollten wir umgekehrt Bit 7 bei allen Bytes 
wegblenden, müßten wir so programmie- 
ren: 


LDY #0 

LOOP LDA MEMORY, Y 
AND %01111111 
STA MEMORY, Y 
INY 
BNE LOOP 


Man beachte, daß AND und OR nur den In- 


halt von A und niemals den von M direkt 


beeinflussen, so daß zur Änderung einer 
Speicherstelle M zunächst M in A geladen 
und nach der Bitmanipulation wieder in M 
zurückgespeichert werden muß. 


16 ASL und LSR 


ASL = Linksverschiebung 
(arithmetic shift left) 

LSR = Rechtsverschiebung 
(logical shift right) 


ASL verschiebt wahlweise das Bitmuster 
von A oder vonM insgesamt um eine Stelle 
nach links. Ferner wird Bit 7 in das Carry- 
Flag (= Übertrags-Flag) übertragen und 
Bit O auf O gelöscht. Sofern das Bitmuster 
von A selbst verändert werden soll, spricht 


47 


48 


10208: ac 05 12 


1003: FF 
1004: 08 


1005: 8D 
1008: A9 
18®A: 8D 


1®82D: AD 
18108: BA 
18ll: 8D 


1814: 99 
1016: A9 
1218: D® 
18lA: A9 


ldlc: 28 


1d1F: CE 
18022: D® 
1024: 69 


--End assembly=-r 


37 bytes 


Errors: 


) 


03 


04 


03 


03 


24 
E9 


19 


18 


10 


10 


FD 


10 


vosavuPw6%ßkh 


ORG 


* + + 


befinden. 


 rr r xx + + * 


JMP 


zeichen an. 


x rr + + r 


veraendert. 
CHAROUT EQU 
* 


HEXZAHL HEX 


BITS HEX 
* 


510092 


BINAER-ANZEIGE 


BEGINN 


A-, X- und 


Y-Register werden nicht 


SFDED 


FF 
28 


Anzeige eines hexadezimalen 
Bytes als 8stellige Binaerzahl 
Das anzuzeigende Byte muss 
sich bereits im Akkumulator 


ROM-Routine CHAROUT zeigt 
beim Apple // Inhalt des 
Akkumulators als ASCII- 


‚spaeter 0 
"8. Bits 


* Hexzahl zwischenspeichern 
* und Bitzaehler auf 8 setzen 


* 


BEGINN STA 
LDA 
STA 

* 

* Momentanes 

* nach links 

* 

* 

* 

SCHLEIFE LDA 
ASL 
STA 


* 
* Falls Carry-Bit ®, 
*. Falls CarryrBit |, 
* 
BCC 
EINS LDA 
BNE 
NULL LDA 
%* 


ANZEIGE JSR 


Fr re er 


DEC 
BNE 
RTS 


HEXZAHL 
#8 
BITS 


Bitmuster laden 
schieben und das 


HEXZAHL 


HEXZAHL 


NULL 
yujpm 
ANZEIGE 
4ugu 


CHAROUT 


BITS 
SCHLEIFE 


dadurch veraenderte Bit- 
muster erneut speichern 


"9" anzeigen 
"]" anzeigen 


‚stets 


Bitzaehler um 1 vermindern. 
Wenn noch nicht alle 8 Bits 
abgearbeitet wurden, erneut 
Schleife durchlaufen. 


man von der sogenannten Akkumulator- 
Adressierung. 


Beispiele: 


LDA #%01111111;A vorher 
ASLA ‚Anachher 


76543210 Bitposition 
A%01111111 vor ASL 
A %11111110 nach ASL 
(Carry-Flag jetzt 0) 


LDA #%10101010:A vorher 
ASL A ‚Anachher 


76543210 Bitposition 
A %10101010 vor ASL 
A %01010100 nach ASL 
(Carry-Flag jetzt 1) 


LSR verschiebt wahlweise das Bitmuster 
von A oder M insgesamt um eine Stelle 
nach rechts. Ferner wird BitO in das Carry- 
Flag übertragen und Bit 7 gelöscht. 


Beispiele: 


LDA #%01111111;A vorher 
LSRA ‚Anachher 


76543210 Bitposition 
A%01111111 vor LSR 
A %00111111 nach LSR 
(Carry-Flag jetzt 1) 


LDA #%10101010;A vorher 
LSRA ‚Anachher 


76543210 Bitposition 
A %10101010 vor LSR 
A %01010101 nach LSR 
(Carry-Flag jetzt 0) 


ASL und LSR werden unter anderem bei 
Multiplikationen und Divisionen benötigt. 
So bewirkt ein einzelner ASL-Befehl eine 
Verdopplung des vorherigen Akkumula- 
tor-Inhalts (A = A # 2), z.B.: 


LDA #%00001010 ;dezimal 10 
ASL A ;A jetzt 900010100 = dezimal 20 


Umgekehrt bewirkt ein einzelner LSR-Be- 


fehl eine Division durch 2 (A = A: 2), z.B.: 


LDA #%00011110 ;dezimal 30 
LSR A ;A jetzt %00001111 = dezimal 15 


Nebenstehendes Beispiel zeigt, wie man 


eine zweistellige Hexadezimalzahl als 


- achtstellige Binärzahl anzeigen kann. 


Peeker 7/85 







APPLE -- DISKETTEN LAUFWERKE -- APPLE : 
Original Disk Ilm. Controller + DOS3.3+ Hdbuch DM 995,— 100% Apple-kompatibel 6 Mon. Garantie Reparaturservice 
Original Disk II (2. Laufwerk) DM 8235.— bei Verwendung des 

Duo-Disk Station Slimline, 2 x 143KB Chinon DM 995 APple-Betriebssystems. 
Siemens Disk-Laufw., 143KB, m. Kabel + Gehäuse DM 525.— 
Abor-Disk-Laufw., Slimline, 143KB, m.Kab. + Geh. DM 398,— 
Chinon Slimline, 143KB, Superleise,m.Kab.+Geh. DM 495,— 


IBM *°'"* KOMPATIBEL ***** IBM *** KOMPATIBEL * 
Alle Teile unterliegen einer sorgfältigen Endkontrolle und wir 
übernehmen daher volle Garantie für die Funktionsfähigkeit, 
sowohl für die gelieferten Leerplatinen, als auch für die fertig 
bestückten Boards und Interface Karten, die fast ohne Ausnahme 
mit gesockelten IC's geliefert werden. 

IBM -- Kompatible Interface Karten und Mainboards -- IBM 


Teac 55F, 1 MB unf. Kapazität, Shugartbus — i 
Teac 55F, kpl..in Gehäuse 40/80 Track, 1MByte DM 508; Disk Controller Karte für 2 Disk-Drives "KL-2020 DM 228,- 
anschlußfertig, mit Umschaltung 40/80 + Kabel DM 648,— - a Board, "KL-2050 DMab 398,- 
rg = Er I) RL 43 KB, mit Kabel DM 498,— RS 232 a ee KL2074 Di wi 10- 
- ACES + MAINBOARDS -- APPLE - z _ 
Disk Controller f. 2 Original 0. kompat. Drives "DM 89— £ Feen Paralell Interface Karte KL-2072 DM 148,- 
nn ern 55F, mit Software “DM 188,— £ Paraleil. Clock mi O Kbestückt sg *KL-2040 DM 398 
ich- ER, N ‚ ’ - - 
er gegen re a S dto. wie vor, jedoch mit 128K bestückt "KL-2041 DM 548, 
16K RAM Erweiterung fürll und kompatible DM 98— APPLE -TASTATUREN+LEERGEHÄUSE + NETZTEILE- APPLE APPLE -- ORIGINAL + KOMPATIBLE - COMPUTER -- APPLE dto. wie vor, jedoch mit 256K bestückt "KL-2042 DM 698,- 
Z 80A Interface Karte für CPM 2.2 "DM 83 — Standard Einbau-Tastatur, ASCII, freibel. 9 Tasten, APPLE Ile, 64KRAM, Ascii-Tastat. + UHF-Modul. DM 2198,— 512K RAM Karte, mit O K bestückt KL-2095 DM 248,- 
Z 80B Interface Karte für CPM 3.0. m. 64K RAM DM 595 — Doppelbelg. aller Tasten, Groß+Kleinschr. Nr.N26 DM 139,— APPLE Ile, Einstiegspaket = Computer 64KRAM, dto. wie vor, mit 128K bestückt KL-2096 DM 398,- 
Printer-Grafik Interface, Epson kompatible "DM 98 — Tastatur wie vor, jedoch mit 15er Block Nr.N67 DM 178,— + Philips-Monitor 18 Mhz grün + Siemens F122 - Multi I/O Interface Board, RS232, Disk-Controller, 
Centronic-Paralell Text-Interface Karte DM 8— Tastatur Nr. N67, mit sep. Gehäuse, kpl. m. Kabel DM 249,— Laufwerk 143K m. Controller + Lerndiskette DM 3098,— Centronics, Clock, Joystick 
Printer-Grafik Interface, NEC/ITOH kompatibel "DM 169— Seperate Tastatur IBM-Look, anschlußfertig mit APPLE II C, 128 KRAM, ASCIl Tastatur DM 2795,— und Lightpen-Port *"KL-2071 DM 568,- 
Anschluß Kabel f. Paralell + Grafik Interface DM 34— Kabel, Dopp. belegt.Tasten, freiprog. Funkt.Tasten DM 298,— APPLE II C, wie vor, jedoch deutsche Tastatur DM 2998, — Eprom Writer Karte (bis 128K benutzbar) 598,- 
Buffer Grafik-Interface benutzbar für Drucker Seperate Tastatur, Eprom progr.-bar, Cursorblock MACINTOSH System komplett m. Mouse + Tastatur Hardisk/Winchester Host-Adapter Karte *KL-2022 DMab 998,- 
Epson/Nec/ltoh/Okidata u. anderem. 32% Buffer DM 348— Tastenfeld mit 24 Funktionen, Deutsch o. ASCII DM 398,— + Macwrite/Macpaint, Systemguide-Diskette DM 5995,— Mainboard XT Version, 8 Slots O bestückt 
Buffer Interface wie vor aber mit 64K Buffer “DM 595 — Leergehäuse Standard, passendf. TastaturNr.N26 DM 98,— MEWA-48K, Apple kompat., Netzt. 5Amp, Tastatur mit 1 Boot-Eprom, 6 Eprom-Plätze frei *KL-1004 DM 699,- 
Anschluß Kabel f. Buffer Interface Karte DM 39 — dto. wie vor, jedoch passend für 15er Tast. N67 DM 119,— mit Dopp-Belegung + 10 frei Prog.Tasten, mit dto. wie vor, jedoch mit 128K bestückt "KL-1005 DM 849,- 
232C Serielle Interface (karte "DM 109 — Leergehäuse wie Mewa 9000, für Einbau von zwei UHF-Mod,, ohne Firmware Eproms. DM 698,— dto. wie vor, jedoch mit 256K bestückt "KL-1006 DM 999,- 
Super Serielle Interface Karte, Fullduplex “DM 188 — Slimline-Laufwerken + Tastaturanschluß, Plastic DM 159,— MEWA-S4K. wie vor jedoch mit 15er Block DM 728,— Mainboard PC Version, 8 Slots, 64K bestückt 
Sprach (Speech) Karte f. S rer abe "DM 78— Leergehäuse wie vor, jedoch in Metall-Ausführung DM 198,— MEWA 9000er Serie, mit seper.Tastat. DIN o. ASCIl mit 1 Boot-Eprom, 6 Eprom-Plätze frei "KL-1010 DM 896,— 
6522 Paralell Interface 2 9 "DM 149 — Leergehäuse IBM-Look, f. 2 Laufw. Standard 5° DM 198,— m. dopp. belegt. Funkt-Tasten, Cursorbl. + 15er dto. wie vor, jedoch mit 128K bestückt "KL-1011 DM 996,— 
Clock Karte (Datum/Uhrzeit) Ein/Ausgabe "DM 129 — Leergehäuse für 1 Slimline Laufwerk, Metall DM 19,90 Block Netzt. 5 Amp., Gehäuse für 2x Slimline- dto. wie vor, jedoch mit 256K bestückt "KL-1012 DM 1296,— 
Eprom Writer Karte (2716 - 2764) 9 -DM 1299 — Leergehäuse f. Duo-Disk = 2x Slimline-Laufwerke DM 98,— Laufwerke UHF-Modulator, o. Firmw.-Proms Bei den mit * gekennzeichneten Artikeln gehört zum Lieferumfang 
IEEE-488 Interface Karte "DM 398 — Leergehäuse f. Duo-Disk = 2x Standard-Laufw. DM 109, — (12KROM), 48K RAM DM 998,— ein Manual, und z. T. ein Schaltbild. 
Logo-Karte mit Diskette und Handbuch DM 498 — Leergehäuse f. Duo-Disk = 2x Slimline + Netzteil DM 179,— MEWA 9000-64-C, wie vor jedoch 64K RAM DM 1098, — IBM -- Kompatible Leerplatinen + Boards -- IBM 
use Karte m. Diskeite und Handbuch "DM 119 — Schaltnetzteile für APPLE u. kompatible Rechner MEWA 9000-64-C Einstiegspaket, wie vor, jedoch Disk Controller f. 2 Drives DM 58— 
PAL Color Interface Karte (UHF + Video) "DM 129 — +5V/3,5A -5V/0,5A +12V/2A -12V/0,5A N73 DM 99,80 mit 1 Disk Drive eingeb. + Disk-Contr. + Monitor, Color Grafik Video Board DM 78— 
RGB Interface Karte (f. Apple Il + I1+) "DM 169 — +5V/5 A -5V/0,5A +12V/2,5A -12V/0,5a N74 DM 119,80 grün DM 1898, — RS232 Interface Karte DM 68,— 
Wild Karte (kopiert über RAM-Bereich) "DM 1 19 — +5V/7,5A -5V/0,5A +12V/2A -12V/0,5A N75 DM 149,50 IBM-Look Gehäuse für MEWA 9000 Serie Aufpreis DM 39,— Centronics Paralell Interface Karte DM 68— 
TEA Een Nana. Peichachweie "EM BB una TTEN + DIERETTENBOSEN 7 ser. MATRIX- UND TYPENRAD - DRUCKER — """'"""" Multifunktion Interface Board DM 99,— 
256K RAM Erweiterungs Kartem Patchsoftware "DM 598 L’0fiDisk.Box, m. Schloß, Klars.-Deckel, 100Disks DM 49,— _ p.g0 Matrix Drucker, Epson kompat.,vollgrafik(. DM 739,— Eprom Writer Interface Karte DM 78,— 
6809 Prozessor Exell-9 Interfacekarte Be +DM 398,— Disk Box mit Klara -Dockat, ca. FO-Diekeiten 5" I. Ge CP-80 X mit eingeb. Interface für VC64f.Sim.B. DM 899,— Multi I/O Board DM 78,— 
IC-Tester Interface Karte (RAMS/TTL 54/74) DM 448 Nartbox für 10 Disketten, mit Klappdeckeleö DM 690 SPEEDY 100-80, Epsonkompat.,1002/s,v.-grafik. DM 759,— Mainboard XT Version, 8 Slots DM 98,— 
ausiistine S8K 0: Firmware Eproms: 8 Siot DM 448 — Disketten, mit Verstärkungsring, 3 Jahre Garantie GEMINI 10X Neu mit Textsp 100 Z/s 9x9 Mat DM 998. — Mainboard PC Version, 8 Slots DM 9,— 
Hauptplatine 4 2 ee p S, Ss DM 498 — ABX 100 = SS/SD 10 Stck. a. 3,98 50 Stck. a. 3,88 500 Stck. a. 3,59 GEMINI 15X. wie 10X, jedoch bis 375 mm Papierbr. DM 1198, — RAM Card für Speicher-Erweiterung DM 68— 
APPLE = ___ LEERPLATINEN = A sek gng  ITOH 8510, Die Zuverlässigkeit in Person DM 1475,— Alle Leerplatinen werden mit Bestückungsplan geliefert. 
Leerplatinen der obigen Interface Karten sind alle in vergoldet, ac Re Bu JUKI 6100, Typenraddr., 22 Z/s, TA-Typenräder ug een kenn un ask. gegen rg u 





> EEE 7 IBBLTTORRUNGIOLDEN. .. c -Artik i Zwi Rechner Leergehäuse f. Einbau v. 2 Drives DM 236,— 
eerplatinen mit der Kennzeichnung DM 39,— omputer rti el Nachnahmeversand unfrei, Zwischenverkauf vorbehalten. j Profi-T Kabel im Gehä ASCH DM 395,— 
Leerplatinen mit der Kennzeichnung "DM 24,50 Angebote freibleibend unter Anerkennung unserer Lieferbedingungen. Technische Änderungen vorbehalten. "Apple ist eingetragenes ei " Seseigehhite ige © Art a Be “ DM 489 — 
Leerplatinen mit der Kennzeichnung +DM 33,— Warenzeichen der Fa. Apple-Computer Inc., Kalifornien. Ware mit Rückgaberecht, besonders gekennzeichnet, muß frei zurückgeschickt Er arte JE90C real ng ASCH . DM 298 — 
Experimentier Platine, für Apple Slot EX300 DM 29,90 werden. *IBM* ist eingetragenes Warenzeichen der Firma IBM GmbH Ffm. Were ln niert 1 00 Watt DM 298 — 
Leerplatine Motherboard, 48K, mit Best.-Aufdruck DM 66,— dto wie vorj _ 
: : ‚ k jedoch 135 Watt DM 338, 
Leerplatine Motherboard, 64K, mit 6502 + 280 om 9— COMPUTER CENTER CONEX ERICH-WILLI MEYER Disketten Laufwerk, 2x40 Track DS/360 KB DM 498,— 
5650 SOLINGEN 11 - Postfach 110206-7 T 6343 FROHNHAUSEN - Postfach 70 11 Harddisk 10MByte, kpl. m. Xebec Controller DM 2990,— 
Telefon (0221) 75449 Telefon (027 71) 350 71 Sonderliste gegen Rückporto. Katalog gegen 3 DM in Briefmarken 





un u mu Ber um A EEE BE 


















Telefon (02 41) 3 49 62 


INTUS - Lernprogramme 
Demo-Disk DM 10,— 


@ mit 8 voll lauffähigen Teilprogrammen zum interaktiven Lernen. 
Dazu 7 Denkspiele. 


Noppiusstraße 19, 5100 Aachen M C R Oo coM O M P U T E R 
@&appie II 


DOS 3.3 





Nach dem ROM-Listing jetzt das | 
DOS-3.3-Listing für den Apple-Il 


e sehr ausführlich englisch kommentierter Assembler- 
quellcode mit Symbolen 

e Als Quellcode für Toolkit-Assembler geeignet 

e Crossreferenzliste aller benutzter Symbole Assembler - 

e DOS-Tips (Autostart, Leserfehler) 

e Programme (Init ohne DOS, DOS-Checker) 


® Lauffähig auf Apple Ile, Ilc, teilweise Il+. 


Katalog mit über 200 Programmen gratis. , : 
Listing 
® Lernprogramme für Sprache, Mathe, Basic, Maschinen- 











schreiben, Informatik, Schnellesen, Vorschule, usw. Außerdem folgende Bücher vorrätig: (ISBN 3-925074-..-.) eo BEER 
ROM-Listings fürApple-Il (ISBN -04-X) 59.- DM — RöckRATH 
® TRS-80 Model I, Genie I+ll (ISBN -01-5) 69.50 DM ESCHER 
TRS-80 Model Ill (ISBN -02-3) 79.- DM 
INTUS < OFTVVAR F Colour-Genie (ISBN -03-1) 59.- DM F. Engels: Apple-Il-DOS-3.3- 
Dragon-32/64-Lexikon (ISBN -05-8) 69.- DM Assembler-Listing (107 S., DIN- 


Maschinensprache für TRS-80/Genie und CG (ISBN -07-4) 49.- DM AS, kart., ISBN 3-925074-09-0, 


Kaiserstraße 21 - 7890 Waldshut-Tiengen - Telefon 07751-7920 Assemblertricks auf dem Colour-Genie (ISBN -08-2) 49... DM 59. DM) 





Appie und IBM 
kompatible Gomputer 


16K, Z80, Diskcontroler je ........ en . 110,- 
80 Zeichenkarte mit Softswitch 

2 Zeichensätze ................... ARTEN er 
Motherboard 48K ohne 
Firmware .......... MAIN RR ERENTO >S 610,- 
Erphi-controler mit Autopatch 
Siemenslaufwerk F 122......... ER 
Philips X3134 2x80 Track ............. ale 465, - 
TEAC FD-55B 2x 40 Track ................ „.. 468,— 
TEAC FD-55F 2x80 Track 


Neu: Stardrucker SG 10 


Monochrome Monitore 
Farbmonitore ...... PESCEEEUNE SU ARREENERR ng 
Tastaturen für IBM und ‘Apple Ei .. ab 330, _ 


Versand nur per Nachnahme oder Vorkasse 


Weiteres Zubehör für Apple und IBM gegen 
frankierten Rückumschlag. 


Preissenkung: 
128K Karte (Saturn kompatibel) .... 395,— 


Zusatzkarten und Motherboard ausnahmslos 
deutsche Fertigung mit ausgesuchten Bauteilen. 


Ulf Mohwinkel Electronic 
Berliner Straße 73 
5090 Leverkusen Fettehenne 
Telefon 02 14/937 81 


APPLE //e 
APPLE AL 


| und kompatible Computer 


"yonsÄor 


-ueIY Iamz uoA gnIyosuy Wunz LHOdAOF 


" dnpioeg 'n WVH II (1289) PieQ-VId ‘Or dAV 


" dnyoeg 'n WVH Hu (2259) PıeQ-viN 'gZ QaV 
491 ‘08Z 


an EI-0L ‘es 
jegqiyedwoy-ejddy ‘'Y8r ‘Od-Il NOSIW 


“un 81-51 '0Q - "IQ Jun 81-21 'OW :InesusAuspe] 
3sS Q4 Iv3l 


YOUMSYOS usy9I9Z 08 


ISMW 'piul "YOIS Old asield 
" ZEZ SH ‘SIINOHLN3O 'WOHd3 "IVd 


"wis jeqiyedwoy-ejddy YoeıL Or ‘E01 AQ1 


Universeller EPROM-Programmer 4003 


8 Programmiert alle gängigen EPROM-Typen (z.B.: 2716, 
2732,-64 ,-128,2508,-16,-32,-64...) @ Voll menügesteu- 
erte Software auf Diskette M@ Kein Schalten, Löten oder 
Stecken nötig @ Programmierspannung wird im Gerät er- 
zeugt M Verbindung zum Rechner über Flachbandkabel 
Rote und grüne Leuchtdiode zur Betriebsart-Anzeige M 
Komplett mit 28 poligem Textool-Sockel M 


Fertiggerät DM 269,50 ® Bausatz + Anleitung DM 219.- 


APPLE //e Ysaköyie ran 


* yoyedonny FOQiV Jejlouoy-Iyd-u 
sie] Jyes SA WeIL 08 SYP WS Meßnys 
UONMNPOAG Byasnap pusyaßyam 


JO9V343LNI31ddV 


(neyuenuspe SM) EOELEES-0EO uOJeloL 


-027 
-00€ 
-"095 
-059 
-0r 
-051 
-021 
-002 
-02, ol 
"56 '-'58 
-'0001 ge 


0802 VAL 
00 LOHPZ 

00S1rZ 

NdO v08Z 
SU0G2-99222 
SU0SZ-821212 
su0g2-F912 
su0gr-zE12 
su0gF-9L72 
su0Sr-8022 

(9L0Z WUYS) EI19L19 
G861 9 62 PuUeIS 


J13.LNI3TN 


104 wu 8 031 


"YOIS OL IIoysedns joy wwg 0371 
SLO 9szır WNL 

"yeloyny P9Lr MSWN 

suoSL-F9Lr AdN 


sU003-9L17 AdN 


m 80 gestochen scharfe und flimmerfreie Zeichen / Zeile 
w plus zusätzliche 64 KByte schnelle dynamische RAM's 
B ermöglicht Double Hires Graphik ( 560 # 192 Punkte 
w vergoldete Steckerleiste und Qualitätsbauteile 


yulgq Joy wu sg 031 


Yyuıq qI99 ‘0 UND WW G 3 


Geprüfte Platine + Demo Disk + Beschreibung DM 219,50 
Bausatz DM 189.- ® Leerplatine + Bauanleitung DM 59.- 
Ab Lager lieferbar. Alle Preise ınklusive Mehrwertsteuer. 


DOBBERTIN 
INDUSTRIE-ELEKTRONIK 


Brahmsstraße 9, 6835 Brühl, Tel. (06202) 71417 


Sp uNeg 0001 - 22 Bomuszinyosapıeg) - JeqIoy "O2 YUEL 'L 


J OHIIN-INOLSANZL 3 


ING 0S‘L+ NN !eq ‘YA Jepo NN Jed puesieA 


wa —'s 6 052 sıq :Bunyoediey pun Oyog !Wa —'OL+ ISuos Wa 


06° — 
gGL— 
PER L 
081 
g17 


sg’— 
08 — 
051 
052 


— 05 HEMIEISEASEPUIN “"y "e UIeYEISUSBUEN] Pun ajleyneg Jene 
08°— 





Peeker 7/85 49 





Fortsetzung von Seite 31 


und normale Anzeige, Ctri-Q kehrt in das 
Hauptmenü zurück. 


QUITTIEREN - Die Eingabe von „Q“ be- 
endet das Programm. Das Programm 
BITEDITOR steht weiterhin im Rechner- 
speicher und kann geändert werden, ohne 
den ebenfalls im Speicher enthaltenen 
Zeichensatz-File zu beeinflussen. 


Die vier wichtigsten Variablen und ihre 
Werte werden in der untersten Bildschirm- 
zeile des Hauptmenüs angezeigt und kön- 
nen gegebenenfalls in der Initialisierungs- 
Routine des Programms geändert werden. 


In Bild 3 ist der Buchstaben B noch einmal 
fett und daneben fett-invers dargestellt. 








KERERERRRR 
*+ . EERKRRERRH 
*+ * 
* Br Bu 
HEBERB * * rz 
"EB BEE * Me 
* BER 3 
* * BER m* 
Fr + u5* 
» 2 
* 
"* 5 — 
SEBEBSE 
WURBENNEAN KERKRKFRRFR 
Bild 3 


BITEDITOR 


Das Programm erklärt sich durch die reich- 
lich verwendeten REMs praktisch von 
selbst. Sie können die REMs beim Ab- 
schreiben des Programms weglassen 
oder mit einem REM-Remover-Programm 
entfernen, da Zeilen, in denen nur Erläute- 
rungen stehen, nicht angesprungen wer- 
den. Das zu bearbeitende Zeichen wird als 
Binärmuster in einen Array geschrieben, 
welches als Matrix am Bildschirm zu se- 
hen ist. Änderungen erfolgen im Array. 
Erst bei der Übernahme durch <RE- 
TURN> wird der geänderte Array in den 
Speicher geschrieben. 


Ich habe die Änderung an mehreren Ap- 
ple-Arbeitsplätzen durchgeführt, je nach 
Monitorqualität mit inversem, fettem und 
normalem, nicht fettem Zeichensatz oder 
mit beiden Zeichensätzen fett. Je billiger 
der Monitor, desto größer der sichtbare 
Erfolg. Unser Fernsehgerät mit Video-Ein- 
gang läßt die 80-Zeichendarstellung über- 
haupt erst nach der Modifikation zu, mit 
nur geringfügig schlechterer Qualität läuft 
diese auch über einen guten HF-Modula- 
tor und den Antenneneingang eines TV- 
Gerätes. 


VTABVS+I 


Selbst bei teuren 80-Zeichenkarten wird 
der inverse Zeichensatz scheinbar nur 
durch Invertieren des normalen gewon- 
nen. Dabei ist es allerdings fast unmöglich 
— auch bei sehr guten Monitoren —, beim 
Betrieb am Apple eine Einstellung zu fin- 
den, die zugleich eine gute normale und 
eine gute inverse Darstellung erlaubt. 
Mich wundert es deshalb, daß der inverse 
Zeichensatz auf den 80-Zeichenkarten 
nicht fett oder in ähnlicher Form geliefert 
wird. Kompromisse müssen bei einer Ma- 
trix mit relativ niedriger Auflösung wohl 
immer gemacht werden, eine so deutliche 
Steigerung der Lesbarkeit wie hier recht- 
fertigt die Modifikation aber unbedingt. 


Anmerkung zur Sammeldiskette: 

Auf der Peeker-Sammeldiskette sind die 
drei Zeichensatz-Files NORMAL, FETT 
und FETT.INVERSE enthalten. 


1909 
1019 
1029 
1039 
1949 
1199 
111@ 
1129 
1139 


1149 
1159 
1299 
1219 
1229 


1239 
1399 
1319 
1329 
1339 


1349 
1409 
1419 
1429 
1439 
1449 
1459 
1599 
1519 
1529 
1539 
1549 
1559 
1569 
1579 
1589 
1699 
161® 
1629 
1639 


50 


REM BITEDITOR: 

REM zeigt Speicherinhalte binär an und erlaubt 

REM diese zu editieren (z.B. Zeichensätze) 

REM Klamt 11.83 Version 19.84 

GOTO 4629: REM Programmbeginn 

REM a ale ae ae ale ale ak ak ak ak ale ak ak ae ae ae ae ak ak ak ak a ae ee aa 
REM DEZ -> HEX Umwandlung 

H$ m 

HH DEC / 16:DEC = INT (HH):HH = (HH - DEC) * 16: IF 
HH > 9 THEN HH =HH + 7 

H$ = CHR$ (HH + 48) + H$: IF DEC < > 9 THEN 1139 
RETURN 

RIEEM 3 aka ak ale ak ae ak ak ale ak ale ak ak ak ae ak ae ak ae ak aa aa aa aa aaa 
REM HEX -> DEZ Umwandlung 

DEC = ß: FOR I = 1 TO LEN (H$):HH 
(H$,I,1)) -— 48: IF HH > 9 THEN HH 
DEC = DEC * 16 + HH: NEXT I: RETURN 

REEM 3 ale ak ak ae ale ak ak ak ak ae ae ak ak a ae ae ak ak aaa ak aaa aaa ak 
REM Array füllen und DEZ -> BIN Umwandlung 

DEC = DEC / 256 

FOR J = ® TO WI:DEC = DEC * 2:AR(J,I) = INT (DEC):DEC 
= DEC - INT (DEC) 

NEXT : RETURN 

REEM aaa ak ak ale ak ae ale ak ale aka aka aka aaa aka 
REM Eine Array-Zeile lesen, BIN -> DEZ Umwandlung 
DEC = 

FOR J = ß TO WI 

DEC = DEC * 2 + AR(J,I) 

NEXT : RETURN 

REM 3a a ak ak ak ak ak akt ak ak ak ak ak ak ak ak aka 
REM Eine Zeile des Bitmusters ausgeben 

HTAB HS 


ASC ( MID$ 
HH - 7 


BIN = AR(J,I) 

IF BIN = ® THEN PRINT " "; 

IF BIN = 1 THEN INVERSE : PRINT " ";: NORMAL 

NEXT : PRINT : RETURN 

REEM 3% ae ak ak ae ak ak ae ak ale ae ak ae ale aka aka 
REM Adresse ausgeben 

IF WW THEN RETURN 

FOR I = TOLG-L1 








IF NOT W AND I > ® THEN 1719 

DEC = ST + I: IF DEC < Rl OR DEC > R2 THEN PRINT CHR$ 
(7);: GOTO 1719 

GOSUB 112®: REM DEZ -> HEX 

IF LEN (H$) < 4 THEN FOR K = 1 TO 4 - LEN (H$):H$ = 
"g" + H$: NEXT 

HTAB HA: PRINT "$";H$: REM Adresse ausgeben 

NEXT 

RETURN 

REM 3a 
REM Inhalte ausgeben 

FOR I=9TOLG-L1 

IF ST+ I< R1l OR ST + I > R2 THEN PRINT CHR$ (7);: 
GOTO 19@P 

VTAB VS + I 

GOSUB 1429: REM Array lesen, BIN -> DEZ Umwandlung 
GOSUB 112®: REM DEZ -> HEX 

IF LEN (H$) = 1 THEN H$ = "9" + H$ 

HTAB HC: PRINT "$";H$: REM Eine Zeile ausgeben 

NEXT 

RETURN 

REM 3 ak aaa 
REM Bitmuster-Fenster neu schreiben 

POKE 33,WI + 1: POKE 32,HS - 1: POKE 34,VS - 1: POKE 
35,VS + LG - 1: HOME : TEXT : REM Fenster löschen 
FOR I=9 TOLG-L1 

IFST+ I< Rl1 OR ST + I > R2 THEN PRINT CHR$ (7);: 
RETURN : REM Bereichskontrolle 

DEC = PEEK (ST + I) 

GOSUB 132®: REM Array füllen 

GOSUB 1529: REM Bitmuster ausgeben 

NEXT : RETURN 

REEM 3% ak ake ak ak ale aka ak aka ak aka ak aka ak aka ak 
REM Nach rechts verschieben 

GOSUB 4319: REM 'Bitte warten' 

FOR I=B TOLG-L1 

DEC = PEEK (I + ST) 

GOSUB 132®: REM DEZ -> BIN 

FOR J = ® TO WI 

AR(WI — J + 1,I) = AR(WI - J,I): REM nach rechts 
NEXT 

AR(®,I) = AR(WI + 1,I): REM rechte Reihe wird linke 
Reihe 


Peeker 7/85 





2200 GOSUB 1429: REM BIN -> DEZ 

221® POKE I + ST,DEC: REM Geändertes Array in Speicher 
schreiben 

2220 NEXT 

2230 A$ = "N": GOTO 2490 

230 RIM 3a akeakealealeakealeakealeale lee eek aaa 

231® REM Alle Zeichen invertieren 

232® GOSUB 4319: REM "Bitte warten' 

23308 FOR I = ® TO FL 

2340 NR = PEEK (I + FS) 

2350 NR = 255 - NR: REM invertieren 

2360 POKE I + FS,NR: REM In Speicher schreiben 

2378 NEXT 

2380 A$ = "N": GOTO 2499: REM Neustart 

24Q®® REM aaa akakakakakaleaeaiakakieaiealealeaieaikaiklealealealeaeialaaealeaekaaaeaeeeaaak 

241® REM Kommandoeingabe 

2420 X = HS:Y = VS: REM Cursor-Position 

2430 GOSUB 3629: REM CS$ Cursor setzen 

2440 POKE — 16368,®: REM Keyboard-Strobe zurücksetzen 

2450 GOSUB 421@: VTAB VW: HTAB HW: GET A$ 

2460 IF A$ = CHR$ (86) THEN 2129: REM Verschieben nach 
rechts 

2470 IF A$ = CHR$ (8) AND ST - IV < Rl THEN PRINT CHR$ 
(7);: GOTO 2449: REM Bereichskontrolle 

2480 IF A$ = CHR$ (21) AND ST + IV > R2 THEN PRINT CHR$ 
(7);: GOTO 2449: REM Bereichskontrolle 

2490 IF A$ = CHR$ (8) OR A$ = CHR$ (21) THEN GOSUB 2929: 
REM Adreßfenster löschen 

2500 IF A$ = "W" AND W = 1 THEN GOSUB 2929: REM 
Adreßfenster löschen 

2510 IF A$ = CHR$ (8) OR A$ = CHR$ (21) OR A$ = CHR$ (32) 
OR A$ = "W" OR A$ = "N" THEN GOSUB 2829: REM Fenster 
mit Inhalten löschen 

2529 A$ = "L" THEN 4929: REM Laden 

2530 A$ = "S" THEN 4129: REM Speichern 

2549 A$ = "I" THEN 3429: REM Cursor hoch 

2559 "J" THEN 3449: REM Cursor links 

2569 "K'" THEN 3460: REM Cursor rechts 

2578 "M'' THEN 3489: REM Cursor abwärts 

2580 IF CHR$ (32) THEN AR(X — HS,Y - VS) = NOT AR(X - 
HS,Y - VS): GOTO 243®: REM Leertaste = konvertieren 

2596 IF A$ = CHR$ (13) THEN GOSUB 4319: GOTO 3329: REM 
<RETURN>, in Speicher schreiben 

2600 IF A$ = CHR$ (84) THEN 3929: REM Test 8® Zeichen 

261® IF A$ = "N" THEN GOSUB 4319: GOSUB 1629: GOSUB 2929: 
GOTO 2429: REM Neustart 

2620 IF A$ = CHR$ (9) THEN 2320: REM Alle Zeichen 
invertieren 

2630 IF A$ = CHR$ (8) THEN GOSUB 4319:ST = ST — IV: GOSUB 
1629: GOSUB 2929: GOSUB 4559: GOTO 2429: REM 
Vorhergehende Seite 

2640 IF A$ = CHR$ (21) THEN GOSUB 4319:ST = ST + IV: GOSUB 
1629: GOSUB 2929: GOSUB 4559: GOTO 2429: REM Nächste 
Seite 

2650 IF A$ = "Q" THEN RETURN : REM Programm beenden 

2660 IF A$ = "W" THEN W = 1: GOSUB 1629: GOSUB 1829:W = 
®:WW = 1: HTAB HW: VTAB VW: GOTO 2449: REM Werte 
anzeigen 

2678 IF (A$ < "DB" OR A$ > "9") AND (A$ < "A" OR A$ > "F") 
THEN PRINT CHR$ (7);: GOSUB 4219: GOTO 244: REM 
Eingabe ist Hex-Zahl 

2680 GOTO 3029: REM Neue Hex-Adresse 

2800 RIM 3akeakealtalealealeaeakakalale leerer ea ale 

2818 REM Fenster mit Inhalt löschen 


2820 POKE 33,3: POKE 32,HC - 1: POKE 34,VS — 1: POKE 35,21: 


HOME : TEXT : RETURN 

2900 REM aka aaleakak aka aealeake alle ale ale ale ak ak alle ale ale ak ak aaa 

291® REM Fenster mit Adressen löschen 

2928 POKE 33,5: POKE 32,HA - 1: POKE 34,VS - 2: POKE 35,21 

2930 HOME : TEXT :WW = ®: RETURN 

30®® REM 3 akaalakalalkakaieakkaleaieaieataleaieak ale ale aleale ale akalealeaikalealeae alla 

301® REM Neue Hex-Adresse 

3020 GOSUB 4219: PRINT "NEUE HEX-ADRESSE: $"; 

3030 B$ = A$: GOTO 3139 

3040 GET A$ 

3050 IF A$ = CHR$ (8) AND B$ = "" THEN PRINT CHR$ (7);: 
GOTO 3949 

3060 IF A$ = CHR$ (8) AND LEN (B$) = 1 THEN B$ = "": GOTO 
313® 

3070 IF A$ = CHR$ (8) THEN B$ = LEFT$ (B$, LEN (B$) - 1): 
GOTO 3139 

3088 IF A$ = CHR$ (13) THEN 3159 

3096 IF (A$ < "DB" OR A$ > "9Y9") AND (A$ < "A" OR A$ > "F") 
THEN PRINT CHR$ (7);: GOTO 3949 

3100 IF LEN (B$) < 5 THEN B$ = B$ + A$: PRINT A$;: GOTO 
3949 

311® PRINT CHR$ (7);: GOTO 3949 

312® REM 3ekakalalkakakakakak 





Peeker 7/85 


3139 
3149 
3159 
3169 


3179 


3180 
319 
3209 
3219 
3229 
3239 
3309 
3319 
3329 
3339 
3400 
3419 
3429 
3439 
3449 
3459 
3460 
3470 
3480 
3499 
3600 
3619 
3629 
3630 
3640 
3659 
3709 
371 
3720 
3739 
3749 
3759 
3809 
3819 
3900 
3919 
3929 
3939 
3949 
3959 


3960 


3970 


3989 
EUl])) 
4019 
4020 
4039 
4040 
4059 
4060 


4079 
A100 
4119 
4129 


4130 
4149 


4159 
4169 
4179 
4200 
4219 


4309 
4310 


4409 
4419 
4429 
4439 
4449 


4459 
4460 


4470 








Technik 94 





VTAB 22: HTAB 19: CALL - 868: PRINT B$;: GOTO 3949 
REM 3a aleaea aka aka 

IF B$ = "" THEN 2449: REM Kommandoeingabe 

GOSUB 431®:H$ = B$: GOSUB 1229: REM HEX -> DEZ 
Umwandlung 

IF DEC < Rl OR DEC > R2 THEN PRINT CHR$ (7);: GOTO 
3230: REM Bereichskontrolle 

ST = DEC 

GOSUB 2929: GOSUB 2829: REM Fenster löschen 

GOSUB 162®: REM Adresse ausgeben 

GOSUB 2®29: REM Bitmuster-Fenster neu schreiben 
GOSUB 4219: REM Zeile 22 und 23 löschen 

GOTO 2429: REM Kommandoeingabe 

REEM 3 ak ak ale ale ale ale ak ale ale ak ak ae ale ak ak ale ale ak a ae ae ak aaa ak ae a 
REM Array in Speicher schreiben 

FOR I = ® TO LG — 1: GOSUB 1429: POKE ST + I,DEC: NEXT 
GOTO 2449: REM Kommandoeingabe 

REM 3 ale ale ale akt ak ak ak ak a a ale ale ak ak ak ae aaa aaa 
REM I J KM Editiermodus 

IF Y = VS THEN PRINT CHR$ (7);: GOTO 2459 

GOSUB 3720:Y = Y — 1: GOSUB 3629: GOTO 2459 

IF X = HS THEN PRINT CHR$ (7);: GOTO 245@ 

GOSUB 3728:X = X - 1: GOSUB 3629: GOTO 2459 

IF X = HS + WI THEN PRINT CHR$ (7);: GOTO 2459 

GOSUB 3720:X = X + 1: GOSUB 3629: GOTO 2459 

IF Y= VS + LG -— 1 THEN PRINT CHR$ (7);: GOTO 2459 
GOSUB 3720:Y = Y + 1: GOSUB 3629: GOTO 2459 

REM 3% ale ale ale ak ale ale ak ak a ak ak ale eat ak ak a ae ae ale ae ak aaa aaa 
REM CS$-Cursor setzen 

VTAB Y: HTAB X: GOSUB 381® 

IF CS ® THEN PRINT CS$ 

IF CS 1 THEN INVERSE : PRINT CS$: NORMAL 

RETURN 

REM 3a ale aleale lea ak ak ak ae ee ale elek ak ak ak eek 
REM Cursor löschen 

VTAB Y: HTAB X: GOSUB 381 

IF CS = ® THEN PRINT " " 

IF CS = 1 THEN INVERSE : PRINT " ": NORMAL 

RETURN 

REEM ara ak ae ale ale alle ak ale aka ae ae elek aka a aaa 
CS = AR(X — HS,Y - VS): RETURN 

REEM 3a ale ale ale ak ale ak aka ae ae ale ae ale ale aa a ak a a elek 
REM 8ß-Zeichen-Test 

PRINT : PRINT D$"PR#3": PRINT 

PRINT CHR$ (12); 

PRINT "TI(NVERSE DARSTELLUNG TN(ORMAL TQ(UITTIEREN" 
GET A$: PRINT A$;: IF A$ = CHR$ (17) THEN PRINT 
CHR$ (26)"1";: GOTO 2449: REM Test 88 Zeichen beenden 
IF A$ = CHR$ (14) THEN PRINT CHR$ (26)"2";: REM 
Normale Anzeige 

IF A$ = CHR$ (9) THEN PRINT CHR$ (26)"3";: REM Inverse 
Anzeige 

GOTO 3959 

REEM 3a ak ale ale ale ale aka ale ak ae ae ae ale ale ale ale a a ae ee ae aa ae ae a aaa 
REM File laden 

GOSUB 421®: PRINT "FILE-NAME LADEN? ";: INPUT "";F$ 
IF F$ = "" THEN 4970 

GOSUB 4319 

PRINT D$; "BLOAD";F$;",A$";FS$ 

GOSUB 2829: GOSUB 2929: GOSUB 1629: GOSUB 2929: GOSUB 
4210: GOTO 2429 

GOSUB. 4219: GOTO 2449 

REEM 3 ak ak ale ae ae ale ale ale ale ak ak ae ae ae eek ak ae ee ae a aaa 
REM File speichern 

GOSUB 4219: PRINT "FILE-NAME SPEICHERN? ": PRINT 
"VORGABE: ";F$;: VTAB 22: HTAB 21: INPUT "";FF$ 

IF FF$ < > "" THEN F$ = FF$ 

IF FF$ = "" THEN GOSUB 421@: VTAB 22: PRINT "SPEICHERT 
":F$: IF F$ = "" THEN 2449 

GOSUB 4319 

PRINT D$; '"BSAVE" ;F$",A$";FS$" ‚L$";FL$ 

GOSUB 4219: GOTO 2449 

REEM 3 ak ale ale ak ale ale ae ale ale ak ale aka ae elek ae ee aaa 
POKE 35,23: VTAB 22: HTAB 1: CALL - 958: POKE 35,24: 
RETURN : REM 'Bitte warten' löschen 

RREEM aaa ae ale eek ak ae ae ae ae ae eek ee eek ee 
VTAB 23: HTAB 1: CALL - 868: INVERSE : PRINT " BITTE 
WARTEN ";: NORMAL : VTAB 22: PRINT CHR$ (1): RETURN 
REM 3% aleale ale ale ak ale ae ae ae ale ale ak ak ae ae ae ale ale a ak ae ea a aaa aaa 
REM Hauptmenü 

TEXT : HOME : INVERSE 

HTAB HA: PRINT "ADRESSE"; 

HTAB HC: PRINT "INHALT"; : HTAB HS — 1: PRINT 
"BITMUSTER" ; 

HTAB HS + 11: PRINT "KOMMANDOS": NORMAL 

VTAB VS — 1: HTAB HS — 1: FOR I = ß TO WI + 2: PRINT 
R$;: NEXT 

VTAB VS + LG: HTAB HS — 1: FOR I = ® TO WI + 2: PRINT 
R$;: NEXT 


51 


VTAB VS: FOR I 1 TO LG: HTAB HS - 1: PRINT R$: NEXT 
VTAB VS: FOR I = 1 TO LG: HTAB HS + WI + 1: PRINT R$: 
NEXT 


VTAB 3: RESTORE : FOR I = 1 TO DT: HTAB HS + 11: READ 

A$: PRINT A$: NEXT 

DATA (1.BUCHSTA-),BE EINGEBEN), ‚LADEN, SPEICHERN, # 

HEX-ADR,<- ->,,LEERTASTE,I JK 

M, NEUSTART , <RETURN>, ‚, WERTEAUSGABE, VERSCHIEBEN, TINVERTIE 

REN,TEST 8® Z, ‚QUITTIEREN 

VTAB 24: HTAB 1: PRINT "FS$=";FS$;: HTAB 14: PRINT 

"FL$=";FL$; 

HTAB 26: PRINT "LG=";LG;: HTAB 35: PRINT "IV=";IV; 

VTAB VW: HTAB HW 

RETURN 

REM KK EEE 

REM Initialisierung 

WI = 7: REM Fensterbreite für Bitmuster 

DIM AR(WI + 2,15): REM Editier-Array 

DT 19: REM Anzahl der DATA-Statements 

HA 1:HC = 9:HS = 17: REM Startpositionen horizontal 
= 16:LG = 9: REM Intervall: Anzeigebereich 





R1$ = "5000":R2$ = "6FFF": REM Eingabebereich 
VS = 12 - INT (LG / 2): REM Startposition vertikal 
HW = 38:VW = 1: REM Cursor Warteposition 

FL$ = "100": REM File-Länge 

D$ = CHR$ (A) 

R$ = "x": REM Rahmen des Bitmuster-Fensters 

cS$ = "+": REM Editier-Cursor 

FS$ = "5ß@0": REM Ab hier wird File in Speicher 
geladen 

GOSUB 4929: REM HEX -> DEZ Umwandlung der Variablen 
GOSUB 4429: REM Menü 

GOSUB 2420: REM Kommandoeingabe 

VTAB 23: END 

REN ee 

REM HEX -> DEZ Umwandlung der Variablen 

H$ = FS$: GOSUB 1229:FS = DEC 

H$ FL$: GOSUB 1220:FL = DEC 

H$ = R1$: GOSUB 1220:Rl = DEC 

H$ = R2$: GOSUB 1229:R2 = DEC 

ST = FS: REM Startadresse 

RETURN 





Nachtrag zum Pascal-RAM-Disk-Driver MACRO LOAD 


LDY #00 
Unsere Setzerei hat bei dem Beitrag RAM-Disk-Driver für Pascal 1.1, Peeker 6/85, 1 LDA ... 
Seite 48 einen Teil des Listings INIT.PASCAL.SOURCE weggeschnitten. Nach dem nn m 
Macro PUSH fehlt die Macro-Definition LOAD. Es sind daher folgende Zeilen einzu- CPY #%3 
fügen: ns 

.ENDM 





Niederlassung Deutschland 


Wellen Sie mit Ihrem MAGINTOSH 


LIMITED 










grafisch arbeiten? 


ESLEUEN GIRL 
STUTLERLEILICE 
rechender 


Georg-Brauchle-Ring 68 
D-8000 München 50 
Telefon 089/1415077 
Telex 5214793 


Peeker 7/85 





EEKER 44 


MAGAZIN FÜR APPLE-COMPUTER 


® AUFTRAG FÜR KLEINANZEIGEN 


Bitte veröffentlichen Sie in der nächsterreichbaren Ausgabe nachstehenden 
Text unter folgender Rubrik: 


[] suche Hardware [] suche Software [] Tausch UL] Verschiedenes 
[] biete Hardware [] biete Software D] Kontakte U Chiffre 


Bitte jeweils 32 Buchstaben pro Zeile-einschließlich Satzzeichen und Wort- 
zwischenräume. Bitte Absender nicht vergessen. 
Chiffregebühr DM 6,— zuzügl. MwSt. 


| MAGAZIN FÜR APPLE-COMPUTER 


Zu der in »peeker«, Heft ,‚ Seite 
[] Anzeige [| Produktbesprechung 





















erschienenen 








über 








bitte ich um detaillierte Information. 
Ich wünsche [| Prospekt, Datenblatt [| Preisliste | schriftliches Angebot [| tel. Rückruf 


Produkt und Bestellnummer aDM |gesamt DM 


gebe ich neben- 
stehende Bestellung 
unter Anerkennung 
Ihrer in der Anzeige 
genannten Liefer- und 
Zahlungsbedingungen 
auf. 


Verkaufe neuwertigen Typenrad- 
drucker mit Apple-Interface. 
Preis auf Anfrage. Tel. 007 








Unterschrift (für Jugendliche unter 18 Jahren der Erziehungsberechtigte) 


DEEKER 44 


AGAZIN FÜR APPLE-COMPUTER 


Schreiben Sie uns, wenn Sie Fragen, Ergänzungen oder Anregungen zu 
Aufsätzen in »peeker« haben: 





Neu im Angebot: Professionelle, 


separate Tastatur für Apple Il 

plus 16 Funktionstasten und sepa- 
ratem Ziffernblock. 

Fa. Keyboard & Co. 

























a wa ANTWORTKARTE 
Beruf a 
:O _ 
Ä Wohnort 
Ö PLZ peeker-Börse 
Bitte veröffentlichen Sie den um- Anzeigen-Service 
Se stehenden Text von____Zeilen 
© a DM in der nächsterreich- Dr. Alfred Hüthig Verlag 
© baren Ausgabe von »peeker« 
Q. Bei Angeboten: Ich bestätige, daß ich alle Postfach 1 Ö 28 69 
Rechte an den angebotenen Sachen besitze j 
6900 Heidelberg 1 
n Unterschrift 












® Karte bitte vollständig ausfüllen 
- Vorname, Name 
L POSTKARTE 
> Firma 
&” Straße 
Telefon mit Vorwahl 
E; PLZ/Ort 
Ei Karte bitte vollständig ausfüllen 
we POSTKARTE 
O Vorname, Name 
= Firma 
O peeker 
r— Redaktion 
ge Postfach 1028 69 
PLZ/Ort | 6900 Heidelberg 1 
Telefon mit Vorwahl 








7 


Produkf- 
Karte 


Wünschen Sie 
weitere Informationen 
zu einem der im Heft 
vorgestellten 
Produkte ? 








Nichts einfacher als 
das. 

Produkt-Karte aus- 
füllen, mit 60-Pfennig 
frankieren und 
absenden. 


Vorher aber nicht 
vergessen: 

kreuzen Sie an, 
welchen Informations- 
wunsch Sie haben. 


Damit erleichtern Sie 
dem Hersteller 

eine gezielte Beant- 
wortung Ihrer Anfrage. 


Zum Schluß tragen 
Sie auf der Rück- 
seite die genaue 
Anschrift des 
Inserenten/Herstellers 
und Ihre vollständige 
Firmenanschrift ein. 


pt MAGAZIN FÜR APPLE-COMPUTER 


Peeker-Sammeldisketten 


Einzelbezug DM 28,— 
Fortsetzungsbezug DM 20,— 

(Jederzeit kündbar, jedoch mindestens 
6 Disketten) 

(* = nur auf Diskette, nicht im Peeker 
gelistet! Seitenangaben beziehen sich 
auf Beginn des Listings) 

Hüthig Software Service 

Postfach 102869 - 6900 Heidelberg 1 


Disk+ 1 
(Heft 1+2, 1984) 


T.DISASSEMBLER.65C02 (1/84, S. 15) 
DISASSEMBLER.65C02 


T.ACCEL.WAIT (1/84, S. 22) 
ACCEL.WAIT 
T.ACCEL.BOOT 
ACCEL.BOOT 
ACCEL.LC.KOPIERER 
T.ACCEL.LC.KOPIE 
ACCEL.LC.KOPIE 
T.ACCEL.ROM.KOPIE1 
ACCEL.ROM.KOPIE1 
T.ACCEL.ROM.KOPIE2 
ACCEL.ROM.KOPIE2 


TURTLE.GRAFIK.MIT.REMS (1/84, S.29) 
TURTLE.GRAFIK.OHNE.REMS * 


DOUBLE.LORES.SOFTSWITCH.DEMO 
(1/84, S. 37) 
DOUBLE.LORES.APPLESOFT.DEMO 
AMPER.DOUBLE.LORES.DEMO 
T.AMPER.DOUBLE.LORES 
AMPER.DOUBLE.LORES 
T.DOUBLE.LORES 

DOUBLE.LORES 


HIRES (1/84, S. 41) 
T.PRINTHIRES 
PRINTHIRES 


DHGR.APSOFT.DEMO (2/84, S. 30) 
AMPER.DOUBLE.HIRES.BAS 
AMPER.DOUBLE.HIRES 
T.AMPER.DOUBLE.HIRES 
DHGR.LINEPLOTTER 


INSTRING.TEST (2/84, S. 43) 
INSTRING.OBJ 
T.INSTRING.OBJ 
INSTRING.LISA.SOURCE 


LOESCHEN.EINES.ARRAYS 
(2/84, S. 52) 


ULTRATERM.ENGLISCH * (2/84, S. 60) 
ULTRATERM.DEUTSCH * 


PRIMZAHLEN.OVERMEYER * 
(2/84, S. 70) 

PRIM.OBJO * 

PRIM.OBJ1 * 

PRIM.TEST * 
PRIM.TOOLKIT.SOURCE * 


Disk #2 
(Heft 1-2, 1985, DOS-Format) 


T.RAMDISKLC (1-2/85, S. 14) 
RAMDISKLC 


T.IBS.RAMDISKDRIVER (1-2/85, S.20) 
IBS.RAMDISKDRIVER 


Peeker 7/85 


T.AP20.RAMDISKTEST 
AP20.RAMDISKTEST 


T.QUICKCOPY (1-2/85, S. 26) 
QUICKCOPY 
QUICKCOPY.PUFFER 
PRODOS.COPYA 
T.PRODOS.COPYOBJ * 
PRODOS.COPYOBJ 


PRODOS.PATCH (1-2/85, S. 31) 


T.APPLESOFT.FRE (1-2/85, S. 36) 
T.LC.FRE 

LC.FRE 

FRE.TEST 

T.RAM.FRE * 

RAM:FRE 


T.SCHIRMDISK (1-2/85, S. 44) 
SCHIRMDISK.LISA.SOURCE 
SCHIRMDISK 


T.VIDEXT 
VIDEXT.LISA.SOURCE 
VIDEXT 


GETPAS (1-2/85, S. 70) 
T.GETPAS.ASS * 

GETPAS.ASS 
GETDOS.PASCAL.SOURCE 
COPYDUPDIR.PASCAL.SOURCE 


PRODOS.EDITOR.MACROS 
(1-2/85, S. 86) 


Disk #3 
(Heft 1-2, 1985, CP/M-Format) 


STEUER.84 (1-2/85, S. 47) 
PASS.BAS 

MENUE.BAS 

HELP.BAS * 


Disk #4 
(Heft 3 + 4, 1985) 


TESTGENERATOR (3/85, S. 26) 
SAETZE 

BAHNFAHRT * 

ZU * 

TUN.UND.SOLLEN * 

IRGEND * 


MULTIPRECISION (3/85, S. 32) 


T.WS.TRANSFER (3/85, S. 36) 
WS.TRANSFER 
T.WS.TRANSFER.2 * 
WS.TRANSFER.2 * 

GETCPM 


PRIM.0.SC.SOURCE (3/85, S. 62) 
PRIM.O.BIN 


PRIM.1.5SC.SOURCE 
PRIM.1.BIN 
PRIM.FP 


ACCELERATOR.ABSTELLEN 
(3/85, S. 66) 


T.WILDCARD.TEST * (3/85, S. 72) 
WILDCARD.TESTI * 
T.WILDCARD.TEST2 * 
WILDCARD.TEST2 * 


XPLOT.DEMO (4/85, S. 18) 
XPLOT.ROUTINE 
T.xPLOT.ROUTINE 


MENUE.GENERATOR (4/85, S. 22) 
T.MACROS.65C02 (4/85, S. 31) 


TERMINAL (4/85, S.36) 
TERMINAL.B 
T.TERMINAL.B 


CAT.ARRAY (4/85, S. 44) 
CAT.SAVER 
EINTRAG.SUCHER 
EINTRAG.ANALYSE 
PRODOS.READER 
T.PRODOS.READER.OBJ 
PRODOS.READER.OBJ 


MOUSESTUFF.PASCAL.SOURCE 
(4/85, S. 51) 
MOUSE.ASS.PASCAL.SOURCE 
TESTMOUSE.PASCAL.SOURCE 
DRAWMOUSE.PASCAL.SOURCE 


INALL.DATA (4/85, S. 70) 
SCREEN80.DATA (4/85, S. 33) 
SCREEN80.SAVER (4/85, S. 76) 


Disk #5 
(Heft 5, 1985, DOS-Format) 


T.FM.BSP (5/85, S. 9) 
FM.BSP 


T.SLOTRAMDISK (5/85, S. 13) 
SLOTRAMDISK 
SLOTRAMDISK.HELLO 


PLOT.2.O (5/85, S. 20) 
T.PLOT.B 

PLOT.B 
PLOT.PROTECTOR 


T.CONVERTS560 (5/85, S. 26) 
CONVERT560 
CONVERT560.DEMO 


T.EDA (5/85, S. 33) 
EDA 


TRANSCEND.PASCAL.SOURCE 
(5/85, S. 36) 


T.BLOCKTRACER (5/85, S. 51) 
BLOCKTRACER 
T.BLOCKTRACER1 
BLOCKTRACERI1 


FORMAT.LC (5/85, S. 56) 
FORMAT.LC.START 


T.DISKDRIVER.DEMO 
DISKDRIVER.DEMO 


RANDOM.DEMO (5/85, S. 69) 
COLUMN80.DEMO 


SUPERDUMP.EPSON (6/85!) 
SUPERDUMP.IMAGEWRITER 
SUPERDUMP.BILD 
T.SUPERDUMP 
SUPERDUMP 

EPSON 

IMAGEWRITER 


Disk #6 


HELLO 
ASMDIV 


CURSOR1 
T.CURSOR1 
CURSOR2 
T.CURSOR2 
LINIE 

T.LINIE 
VIERECK 
T.VIERECK 
BOX 

T.BOX 
HINTERGRUND 
T.HINTERGRUND 
PAGE.SWAP 
T.PAGE.SWAP 


WANDERNDER.STRICH 
KOMPRESSOR.DEMO 
KREIS.1 

KREIS.2 

KREIS.3 

FLIPPER 

T.FLIPPER 
KOMPRESSOR 
T.KOMPRESSOR 


OLYMPIA 
T.OLYMPIA 


FOURIER.MAIN 
FOURIER.SYN 
FOURIER.SPEC 


AS.ERWEITERUNG 
T.AS.ERWEITERUNG 
AS.ERW.PROSTART 
AS.ERW.PRO 
T.AS.ERW.PRO 


INSTALL.PASCAL.SOURCE 
RAMDISK94.PASCAL.SOURCE 
INIT.PASCAL.SOURCE 


RAMDISK.INIT.DOS 
AUXDRIVER 
T.AUXDRIVER 
MOVEDRIVER 
T.MOVEDRIVER 
RAMDISK.FORMATTER 
T.RAMDISK.FORMATTER 


SOLITAIRE.START 
SOLITAIRE 
SOLITAIRE.B 
T.SOLITAIRE.B 


55 


Karl Bolle 


Computer-Fibel 


ö., völlig neubearbeitete 


Computer-Fibel 


Von Karl Bolle 3., völlig neubearbeitete Auflage. 1985. 194 Seiten. 
Kartoniert. DM 26,-. ISBN 3-7685-6784-2 


Welche organisatorischen Probleme gibt es bei der Computerinstal- 
lation am Arbeitsplatz ? Was ist Hardware, Software, Orgware ? Wie 
erstellt man ein Programm ? Was ist Belegverarbeitung ? Wie lauten 
die zehn Gebote für den Einstieg in die EDV ? Diese und viele andere 
Fragen beantwortet die Computer-Fibel auf prägnante, unterhalt- 
same und anschauliche Weise. Sie versetzt den Leser in die Lage, 
sich innerhalb kürzester Zeit mit dem Computer-Basiswissen vertraut 
zu machen und die Grundzüge der Programmierung zu erlernen. 


Programmier- 
sprache »C« 


Esperanto der Software 





R. v.Decker's Verlag, G. Schenck 





Von Martin Bergmann, Hans-Dieter Litke, 
Paul G. Maciejewski, Adelheid Kröz, 


Dieses Buch enthält eine detaillierte Darstellung der Pro- 
grammiersprache »C«. Es wendet sich an Leser, die über 
Grundkenntnisse der Informatik und über Programmier- 
erfahrung verfügen, und ist damit für Hobbyinformatiker, 
Studenten naturwissenschafticher und technischer 


B.-D. Like /M. Bergmann 
P. Maciajewski/ A. Kröz 


Pro 





er- 


8 n0« 


Esperanto der Software 


Didaktisch - systematische Darstellung 
für den Anfänger und Anwender 


Fachrichtungen und für professionelle Software-Entwick- 
ler gleichermaßen geeignet. 

Programmierneulingen wird empfohlen, sich zunächst mit 
einer einfacheren höheren Programmiersprache wie z.B. 
Pascal oder Basic zu beschäftigen. 


Didaktisch-systematische 
Darstellung für den 
Anfänger und Anwender 


1985. Xll, 186 Seiten. Kartoniert. 


R.v. Decker's Verlag, G. Schenck 





DM 38,-. ISBN 3-7685-6484-3 


£ 
Cobol-Fibel _... 


Cobol-Fibel 


7., neubearbeitete Auflage 









Von Karl Bolle 7., neubearbeitete Auflage. 1985. 
VIN, 267 Seiten. Kartoniert. DM 32,- 
ISBN 3-7685-6684-6 









R. v. Decker's 
Verlag, G. Schenck 


Im Weiher 10 Autor dieses Buches ist ein erfahrener Programmier- sr 
6900 Heidelberg 1 lehrer, der hier in einer allen Interessierten leicht 
zugänglichen Darstellung in ein umfangreiches, ES gS 
scheinbar kompliziertes Gebiet einführt. An kom- | N 


pletten Programmmbeispielen wird die Systematik || 
einer Programmiersprache deutlich, die für fast alle 
elektronischen Datenverarbeitungsanlagen gültig ist. Dem mit R.u.Deoker's Verlag, G. Schenk |} 
dem verstärkten Einsatz kleinerer Computer gegebenen Trend | 

zur Bildschirmverarbeitung wird in dieser 7. Auflage durch zusätzliche Einfügung einiger Bild- 
schirmprogramme Rechnung getragen. Ein bewährtes Werk, das sich ebenso zum Selbst- 


studium wie als unterrichtsbegleitendes Matenal eignet. 
@ 
Basic-Fibel 


Von Professor Gary 6. Bitter und 
Wilson Y. Gateley. 

Aus dem Amerikanischen übersetzt 
und bearbeitet von Karl Bolle. 


2. Auflage 1980. XIV, 154 Seiten. 


Kartoniert. DM 24,- 
ISBN 3-7685-2979-7 





L 


Diese leicht verständliche Einführung in die Programmier- / 
sprache BASIC eignet sich vorzüglich zum Selbststudium. 
Einige wenige Stunden genügen, um sich speziellen Pro- 
blemen ohne Schwierigkeiten zuwenden zu können. Von 
BASIC gibt es viele Versionen, wenngleich diese Program- 
miersprache bei den unterschiedlichen Systemen schon 
einen weitgehend einheitlichen Stand aufweist. Die Grund- 
lagen und gemeinsamen Sprachelemente von BASIC wer- 
den so vermittelt, daß der Lernende die Besonderheiten 
einer BASIC-Version ohne Probleme sich zu eigen machen 
kann. 







R.v. Decker’s 
FACHBÜCHEREI 


LBITTO SA ERTTO oe 


Basic Fibe 


2. Auflage 





R.v. Decker’s Verlag 
G. Schenck 









Das vorliegende Buch ist für das Selbststudium von „Busi- 
ness BASIC" konzipiert worden. Business BASIC ist eine 
Mischung von FORTRAN, der verbreitetsten technisch- 


Business Basic 


R.v. Decker’s 
FACHBÜCHEREI 


Von Karl Bolle. 

1984. Yıll, 223 Seiten. Kartoniert. 
DM 34,- 

ISBN 3-7685-1283-5 


\ Karl Bolle 





R.v. Decker’s Verlag 
G.Schenck 








wissenschaftlichen Sprache und COBOL, der bekannte- 
sten kommerziellen Programmiersprache. Business 
BASIC wurde speziell für die Dialogverarbeitung mit Mini- 
Computern und Büro-Computersystemen erfunden und 
weiterentwickelt. Der gesamte Sprachschatz kann mit 
Hilfe dieses Werkes, selbst von Anfänger, in etwa zwei 
Wochen erlemt werden. 





PN 


Wordstar mit allen 
FX-80-Schriftarten 


von Dipl.-Ing. H. A. Rohrbacher 


Mit Hilfe einfacher Patch-Routinen wird 
gezeigt, wie man die von den Epson- 
Druckern FX-80 und FX-100 angebote- 
nen Schriftarten Elite, Italic (= kursiv), 
Proportional und deren mögliche Mi- 
schungen für den Wordstar 3.0 an- 
spricht und die Bildschirmdarstellung 
mit den deutschen Sonderzeichen er- 
reicht. 


Ohne Zweifel zählt Wordstar zu den welt- 
weit bekanntesten Textverarbeitungs-Sy- 
stemen, wobei die Wordstar-Version 3.0 
gleichzeitig eine besonders weite Verbrei- 
tung erreicht hat und über eine Reihe will- 
kommener Änderungsmöglichkeiten für 
eine alternative Druckersteuerung oder 
Bildschirmdarstellung verfügt. Wer hätte 
nicht gerne seinen Text durch Kursiv- oder 
Eliteschrift hervorgehoben, beides ge- 
mischt, oder die Proportionalschrift für ei- 
ne optisch ausgeglichene Textdarstellung 
benutzt? 

Die weit verbreitete Meinung, man brau- 
che für abweichende Schriftarten jeweils 
eine individuell modifizierte WS-Version, 
ist irrig. Man kann sehr wohl die vom FX- 
80 angebotenen Schriftarten Pica (10 Zei- 
chen/Zoll), Elite („Perl“, 12 Zeichen/Zoll), 
Italic (= Kursiv) und Proportional (unter- 
schiedliche Dickten = Buchstabenbreiten) 
in einer einzigen, einmal installierten WS- 
Version vereinen, miteinander mischen, 
dehnen, komprimieren, indizieren (= 
hoch- und tiefstellen), fett oder doppelt 
drucken, da der größte Teil dieser Mög- 
lichkeiten über ESC-Sequenzen aufrufbar 
ist. Die einzelnen WS-Befehle müssen da- 
her lediglich den FX-80-ESC-Befehlen 
entsprechen. 


Peeker 7/85 


Bild 1 


Die WS-Anpassung an diese Fähigkeiten 
wird durch ein „Patchen“ bewirkt (wört- 
lich: „am Zeug flicken“), das auch von 
einem Ungeübten bei strikter Einhaltung 
der Vorgehensweise durchgeführt werden 
kann. Ziel der Bemühungen ist es also, 
eine Wordstar-Version zu erstellen, mit 
der beispielsweise ein in Bild 1 gezeigter 
Misch-Text ohne Diskettenwechsel oder 
Collagetrick ausgedruckt werden kann. 


Die Vorbereitung 

Es wird davon ausgegangen, daß die 
Wordstar-Version 3.0 lauffähig, also auf 
den Apple Il grundsätzlich angepaßt vor- 
liegt. Weiterhin beziehen sich die folgen- 
den Änderungen auf die Verwendung ei- 
nes Epson-Druckers vom Typ FX-80 oder 
FX-100. Mit einigen Erweiterungen wird 
auch der Druck-Computer LQ-1500 und 





mit Einschränkungen der Matrixdrucker 
RX-80 berücksichtigt. 

Der erste Schritt beginnt damit, daß man 
sich eine WS-Kopie erstellt, wobei nur die 
drei Files WS.COM, WSMSGS.OVR und 
WSOVLY1.OVR vorhanden sein sollen. 
Alle drei gehören zusammen. Sollten beim 
Kopieren noch weitere Dateien übertragen 
worden sein, so werden diese gelöscht 
(„ERA“ unter CP/M oder „Y“ unter WS). 
Nun wird die Befehlsdatei INSTALL.COM, 
am besten mittels „PIP. COM“, zusätzlich 
auf die Diskette kopiert. Es schadet nie, 
von der so entstandenen Diskette wieder- 
um eine Kopie herzustellen, mit der dann 
weitergearbeitet werden kann, wenn die 
Erstversion aus irgendeinem Grund defekt 
geworden sein sollte. 


57 





Das Installations-Programm 


Die für den FX-80 vorzunehmenden „Pat- 
ches“ werden ausschließlich mit Hilfe des 
INSTALL.COM-Programms durchgeführt. 
Man beginnt damit, daß der auf der vorbe- 
reiteten Diskette enthaltene WS gestartet 
wird. Aus dem Haupt-Menue wählt man 
„R“, wonach sich WS mit „COMMAND?“ 
meldet. 

Nun gibt man „INSTALL“ (ohne „.COM“) 
ein und startet damit das Installationspro- 
gramm. Nach einigen Sekunden wird man 
gefragt: 

—- Do you want a normal first time IN- 
STALLation of WordStar? 

Da das sicher nicht der Fall ist (sonst wäre 
der WS bisher nicht gelaufen), antwortet 
man mit „N“ für No. 

Im nachfolgenden Menue werden die Ant- 
wortmöglichkeiten A, B, C und D angebo- 
ten; von diesen wählt man „D“. 

Danach folgt die Frage: 

- Filename of Wordstar to modify? 

Hier ist der Name der vorliegenden 
WS.COM-DateiÄ, nämlich „WS“ (ohne 
„.COM“) einzugeben und mit Return ab- 
zuschließen. 

Es folgen insgesamt acht weitere Fragen, 
die alle nacheinander mit Return beant- 
wortet werden können, wenn — wie ange- 
nommen wird — eine 80-Zeichenkarte mit 
dem Videx-Standard und ein Epson-Inter- 
face (oder kompatibles) verwendet wer- 
den. Die 80-Zeichenkarte wird im Slot 3, 
die Interface-Karte für den Drucker im Slot 
1 erwartet. 

Nach dem achten Return fragt das Installa- 
tionsprogramm: 

— Are the modifications to wordstar now 
complete? ok (Y/N): 

Da wir erst jetzt beginnen wollen, die „Pat- 
ches“ vorzunehmen, muß an dieser Stelle 
unbedingt mit „N“ geantwortet werden. 
Als Folge davon ist man auf einer Arbeits- 
ebene angekommen, die es erlaubt, die 
einzelnen Speicherzellen nach Wunsch zu 
ändern. Es wird angeboten: 

- Location to be changed (0 = End) 

Zum Aufruf des Speicherplatzes kann ent- 
weder die hexadezimale Adreßnummer 
eingegeben oder der Label-Name ver- 
wendet werden. Letzterer muß in jedem 
Fall immer mit einem Doppelpunkt (:) en- 
den. Will man unterschiedliche WS-Ver- 
sionen patchen, so empfiehlt es sich, die 
Label-Namen zu verwenden, da sich diese 
nie ändern, in einigen Fällen aber die rele- 
vanten Speicheradressen von Version zu 
Version andere Werte angenommen ha- 
ben können. Wir bleiben beim WS 3.0 und 
müssen zunächst einige Unarten von WS 


58 


bereinigen. Hierzu muß man wissen, daß 
bei jeder Installation zwei wichtige Dinge 
automatisch auf den US-Standard zurück- 
gesetzt werden, die man hierzulande nicht 
sonderlich schätzt: 


1. Die auf dem Bildschirm bisher bekann- 
ten deutschen Sonderzeichen, also die 
Umlaute, das B und das $-Zeichen, er- 
scheinen ohne Zutun wieder im ASCII- 
Format als {, }, [, ], @ und \\, und wer 
seinen Wordstar bisher nicht anders kann- 
te, hat hier Gelegenheit zur Umstellung 
auf den deutschen Bildschirm. (Anm. der 
Red.: Diese „Unart“ existiert nicht bei 80- 
Zeichenkarten mit Deutsch als erstem Zei- 
chensatz.) 

2. Der WS wird langatmig und führt große 
Warteschleifen zwischen den Ctrl-Kom- 
mandos und der Menue-Anzeige oder für 
die Anzeige des Ctrl-Zeichens ein, was 
die Geduld des flinken WS-Benutzers nur 
unnötig strapaziert. 


An dieser Stelle sind daher vorab zwei 
Anmerkungen angebracht: Einmal werden 
deutsche Verhältnisse wiederhergestellt, 
indem im Label „TRMINI“ = ab Speicher- 
stelle 0292H das für die deutsche Zei- 
chendarstellung wichtige Ctrl-Z3 unterge- 
bracht wird. Weiterhin sei auf einige Zeit- 
schleifen hingewiesen, die ebenfalls bei 
jedem Patch-Vorgang neu festgelegt wer- 
den müssen, wenn man nicht zu lange 
warten möchte, bis der WS endlich zur 
Sache kommt. Die entsprechenden Labels 
sind mit DEL3: und DEL4: benannt und 
haben die Adressen 02D1H bzw. 02D2H. 





Tabelle 1 


Die mnemotechnische Ordnung 


Wenn man sich den WS nach eigenem 
Geschmack optimal richten möchte, so ist 
das nur mit einem gut merkbaren Satz von 
Ctrl-Codes möglich. Leider können nur 
wenige Eselsbrücken aus dem Amerikani- 
schen übernommen werden, und es ist 
geradezu grotesk, wenn zum Hochstellen 
des Textes T T und zum Tiefstellen TY 
verwendet werden muß, wo doch jeder 
Deutschsprechende „T“ als „Tief“ inter- 
pretiert und mit „Y“ einen nach oben ge- 
richteten Vektor meint. 

Da nicht viele Buchstaben für die ver- 
schiedenen Schriftarten zur Auswahl ste- 
hen, sollten diese wenigstens sinnent- 
sprechend eingesetzt werden. WS-Benut- 
zer, die sich an den US-Standard gewöhnt 
haben, sind nicht gleich zum Umdenken 
bereit. Aber spätestens nach ein paar Ta- 
gen folgt man gerne der Vereinfachung, 
und die verwirrenden, alten Ctri-Befehle 
für den Aufruf der Sonderschriftarten sind 
schnell vergessen. Will man aber schon 
einmal geschriebene Texte nicht mehr än- 
dern und beim gewohnten Ctrl-Satz blei- 
ben, so genügt es, wenn für die neu aufzu- 
nehmenden Schriftarten lediglich zwei 
neue Ctrl-Codes definiert werden. 

Die Festlegung der Codes ist eine Voraus- 
setzung für das Patchen und muß daher 
zuvor erledigt werden. In der Tabelle 1 
sind die Befehle zur Auswahl der einzel- 
nen Schriftarten zusammengefaßt, wobei 
eine ganze Reihe weiterer kombiniert wer- 
den könnten: TE steht für Engschrift, T W 
für Weit, ? T für Tief, Rücksetzten von Eng 
wird TR usw. Die wichtigsten Ctrl-Codes 
sind TA und ?N. Hier liegt der Schlüssel 
zum Ganzen: 

Die im Amerikanischen oft für Fettschrift 
verwendeten Labels „PALT:” und 
„PSTD:“ können freigemacht werden, da 
Fettschrift mittels TB aus dem Label 
„BLDSTR:“ (= boldstrike) gesteuert wer- 
den kann. „PALT:“ und „PSTD:“ werden 
dafür zu offenen ESC-Sequenzen modifi- 
ziert und erlauben, zusammen mit dem für 
die typische Sonderschriftart angehängten 
Argument, die FX-80-Schriften aufzurufen 
und nach Wunsch zu mischen oder dop- 
pelt und fett zu schreiben. Mit TAx = 
Alternative Schrift EIN bzw. mit TPx = 
Pica = Alternative Schrift AUS schaltet 
man die Sonderschriften ein und aus. Das 
Argument „x“ steht hierbei für die einzel- 
nen Schriftarten wie z.B. Elite, Italic und 
Proportional. 


Peeker 7/85 





Die zu ändernden Zellen 


Da auf dem Bildschirm noch immer die 
Eingabe der „Location to be changed” 
erwartet wird, beginnen wir mit den zuvor 
erwähnten Sonder-Patches für die deut- 
sche Darstellung und den kurzen Warte- 
schleifen. 

Die Vorgehensweise ist folgende: Wir 
wählen die Adreßnummern und nicht die 
Label-Namen, da wir innerhalb der Version 
3.0 bleiben, und geben als erstes „292 
<R>" ein, wobei <R> für Return steht. 
Auf dem Bildschirm wird uns dann der alte 
Inhalt der Speicherzelle 0292H, nämlich 
„00“ angezeigt. Beim Anwählen der 
Adresse 0292H wurden die nichtführende 
Null und das „H“ (für hexadezimal) weg- 
gelassen. 

Der Inhalt einer Adresse wird geändert, 
indem man das für die Änderung benötigte 
Byte (wiederum hexadezimal) eingibt: 04 


<R>. Wir haben mit 0292H das Label: 


„TRMINI:“ angewählt, das für die TERMI- 
NAL INITIALIZATION verantwortlich ist 
und von dessen acht Bytes vier belegt 
werden müssen, um Ctrl-Z3 für die deut- 
sche Zeichendarstellung auf dem Bild- 
schirm „einbauen“ zu können. Mit „O4 
<R>“ wird das „Zählbyte“ für die noch 
folgenden vier Bytes vorangestellt, das 
festlegt, wieviel Bytes insgesamt im jewei- 
ligen Label berücksichtigt werden und das 
beim Patchen zur Vollständigkeitskontrolle 
herangezogen werden kann. Jetzt erst fol- 
gen die vier weiteren Bytes: 14 in 0293H, 
48 in 0294H, 1A in 0295H und 33 in 
0296H. 

Es wäre nun sehr mühsam, wenn jedes- 
mal die Folgeadresse neu eingegeben 
werden müßte. Ein zweites <R> führt un- 
mittelbar zur nächsten Adresse und der 
Angabe deren Inhalts, so daß die insge- 
samt fünf Bytes ab Adresse 0292H auch 
so eingegeben werden können: 

292 <R> 04 <R><R> 14 <R><R> 48 
<R><R> 1A <R><R> 33 <R>. Der 
Byte-String wird am Ende nur mit einem 
<R> abgeschlossen. Damit können 
gleich weitere, neue Adressen angewählt 
werden. Hierzu noch ein Beispiel für die 
Verkürzung der schon genannten Warte- 
schleife bei Adresse 02D1H: 

Auf „Location to be changed?“ antwortet 
man: 2D1 <R> und bekommt den derzei- 
tigen Speicherinhalt „19“ ausgewiesen. 
Der Wert für die Warteschleife kann zwi- 
schen 1 und 127 liegen. Wir wählen den 
kürzesten und geben 01 <R> ein. Die 
nichtführende Null könnte man hier eben- 
falls weglassen, es hätte also 1 <R> ge- 
nügt, doch beim erstmaligen Patchen führt 


Peeker 7/85 





CP/M 


Adresse: Adr.# CtriP Inhalte Bedeutung 

TRMINI: 0292 B4 14 48 1A 33 CTRL-23 -> deutsche Zeichen 
DEL3: B2D1 Öl (ex: 19) mittellange Warteschleife AUS 
DEL4: 02D2 Bl (ex: 4B) lange Warteschleife AUS 

DEL5: 02D3 00 (ex: 99) Ctrl-delay AUS 

PALT: D6B5 Ta 01 1B ESC-Sequ.-> Sonderschrift EIN 
PSTD: B6BA: TN BI 1B ESC-Sequ.-> Sonderschrift AUS 
USRI: D6C9 190 93 1B 57 08 ESCW® -> Weit AUS 

USR2: D6CE 1w 03 1B 57 O1 ESCW1 -> Weit EIN 

USR3: D6D3 !E 81 OF SI=CHR$(15) -> Eng EIN 

USRA: M6D8 ’R 08 32 15 58 DC + ESC P -> Eng AUS+NORMAL 
RIBBON D6DD TY 23 ıB 58 208 ESC SG -> Hochstellen EIN 
RIBOFF D6E2 !Y 984 1B 54 1B 48 ESC T +H -> Hochstellen AUS 
ROLUP D6BF !T 2a 1B 58 21 ESC S 1 -> Tiefstellen EIN 
ROLDOW: 06C4 Tr 084 1B 54 1B 48 ESC T +H -> Tiefstellen AUS 
PSINIT: D6E7 7 1B 4D 1B 52 ®1 1B 4F -> Drucker INIT 
PSFINI: B6F8 6 1B 57 808 12 1B 49 -> Drucker END 
BLDSTR: 0691 1B 93 Fettdruck 3-mal Anschlag 
DBLSTR: 0692 !D 22 Doppeldruck 2-mal Anschlag 
INITPF:+1 9367 48 (72 Zeilen Papierformat = .PL72) 
INITPF:+2 0368 40 02 (Papierlänge in 1/48" wiederholen) 
INITPF:+5 P36B 8 (entspricht .MT® = ® zusätzl. Kopfzeilen) 
INITPF:+6 036C B0 99 (wird hier in 1/48" wiederholt) 
INITPF:+13 0373 BA (entspricht .MBl® = 10 Zeilen Fußabstand) 
INITPF:+14 9374 50 98 (wird hier in 1/48" wiederholt) 
INITPF:+17 0377 Öl (Abstand Seiten-# vom Text in Zeilen = |) 
INITPF:+18 9378 98 BB (wird hier in 1/48" wiederholt) 
INITPF:+24 B37E 08 (Heftrand = 8 Spalten, entspricht .P08) 
INITRM D38D 43 (rechter Rand + 1 Spalte, entspr. TOR68) 


Patches für den mnemotechnichen WORDSTAR 3.9 mit den 


frei wählbaren, 
Elite, Italic und Proportional. 


Tabelle 2 


allzu große Freizügigkeit leicht zu Fehlern, 
weshalb es ratsam ist, die Bytes immer 
ungekürzt einzugeben. 


Patch-Tabelle 

In der Tabelle 2 sind alle für den mnemo- 
technischen Wordstar nötigen Speicher- 
adressen und deren Inhalte zum Aufruf 
der FX-80-Schriftarten: Eng, Breit, Sperr- 
druck, Index, Elite, Italic, Proportional, de- 
ren mögliche Mischungen sowie der Fett- 
und Doppeldruck aufgeführt und die Pat- 
ches für weitere, wichtige Bereiche der 
Druckdarstellung angegeben. 

Die Reihenfolge der Vorgehensweise ist 
beliebig. Am besten beginnt man mit den 
Adressen 0292H, 02D1H und 02D2H, die 
beim Installieren immer neu gepatcht wer- 
den müssen. 


Patch-Arbeit abschließen 

Wenn alle Adresseninhalte gesetzt sind, 
wird die Arbeit einfach dadurch abge- 
schlossen, daß auf die Frage „Locations to 
be changed (0 = End)“ eine Null mit <R> 
eingegeben wird. 

Der sich anschließende Aufruf „Confirm 
terminal and printer selections ok (Y/N):“ 
wird mit „Y“ beantwortet. Danach läuft das 
Laufwerk an und kopiert den modifizierten, 
gepatchten WORDSTAR WS.COM auf die 
Diskette. Sobald dieser Vorgang beendet 


zusätzlichen Sonderschriften 


ist, wird WS automatisch neu aufgerufen, 
wobei die langen Warteschleifen fehlen, 
und man ist rasch auf der Haupt-Menue- 
Ebene angelangt. Es reizt nun zu sehen, 
ob alle Patches gelungen sind. Dazu legt 
man eine neue Test-Datei mit einem Um- 
laut im Namen an. Der Dateiname sei 
„HÜTHIG.TST“. Zunächst schreibt man 
ein paar belanglose Worte wie: „...das ist 
Pica, dann: TAM ...das ist Elite... T NP 
..wieder normal Pica... T A4 ...das ist Ita- 
lic... TN5 ...wieder normal Pica... T Ap1 
..Proportional... ?NpO und wieder nor- 
mal“. (T bedeutet hier Ctr-P und muß 
stets allen Befehlen vorangesetzt wer- 
den). 

Nach erfolgtem Abspeichern dieses kur- 
zen Textes und anschließendem Ausadruk- 
ken zeigt sich dann, ob das Werk den 
Erwartungen entspricht. 


Tastatur und Ctrl-Codes 

Eine Reihe von Apple-Nachbauten verfügt 
über frei programmierbare Funktionsta- 
sten mit einer Batteriepufferung. Der Wert 
solcher Einrichtungen ist unschätzbar, da 
lediglich eine vorprogrammierte Taste zum 
Einschalten einer Schriftart bzw. eine 
zweite zum Ausschalten gedrückt werden 
muß. Moderne Tastaturen, die an den Ap- 
ple angeschlossen werden können, haben 
teilweise 10 bis 24 Funktionstasten, die 
auf bis zu vier Ebenen belegbar sind und 


59 





meist schon in einer Ebene über die wich- 
tigsten Wordstar-Ctrl-Codes verfügen. 


Das Pitch-Problem 

Da die verschiedenen Epson-Schriftarten 
unterschiedliche Zeichen-Dichten aufwei- 
sen, ist der rechtsbündige Blocksatz nicht 
mehr durchführbar. Lediglich die Normal- 
schrift Pica und Italic und deren Index- 
schriften haben den gleichen Pitch mit 10 
Zeichen pro Zoll. Elite hingegen schreibt 
mit 12 Z/Zoll, Engschrift (condensed) mit 
17 Z/Zoll, und die Sperrschrift ist 8,5 Z/ 
Zoll breit. Die Breitschrift selbst verfügt 
über einen 5er-Pitch, und jede Mischung 
führt zu neuen Pitch-Werten. Schließlich 
gibt es für Proportional überhaupt keinen 
festgelegten Pitch, da die einzelnen Zei- 
chen zwischen 5 und 12 Pixelpunkte breit 
sein können. 


Man kann im Regelfall davon ausgehen, 
daß jede Datei in einer Vorzugs-Schriftart 
angelegt wird, wobei für Hervorhebungen, 
einzelne Passagen, Überschriften oder 
Teile von Tabellenwerken Sonderschriften 
benutzt werden. 

Für den Ausdruck des Textes wird im all- 
gemeinen ein linker Heftrand mit acht 
Spalten Abstand gewählt, der in der 
Adresse 037EH fest (default) installiert ist 
oder durch den Punktbefehl .PO (Druck- 
spalte) frei gewählt werden kann. Somit 
bedeutet Linksbündigkeit = 8 x 1/10 Zoll 
= 20,32 mm Abstand vom linken Papier- 
rand bei Normalschrift. Begänne jedoch 
der Text einer neuen Zeile nicht im Nor- 
malschriftmodus, sondern mit Engschrift, 
so wären nur 8 x 1/17 Zoll = 11.95 mm 
Heftrand festgelegt, und der eng geschrie- 
bene Text würde nach links vorgerückt 
erscheinen. Das Problem der Linksbün- 
digkeit läßt sich prinzipiell vermeiden, 
wenn überhaupt kein Heftrand (.PO=0 
bzw. Speicherinhalt von O37EH: 00) fest- 
gelegt ist. 

Eine weitere Lösung besteht darin, daß in 
jedem Fall eine neue Zeile mit Pica-Nor- 
malschrift begonnen wird. Dies wiederum 
ist in der Praxis nicht akzeptabel. So helfen 
entweder nur eine bestimmte Anzahl von 
Leerzeichen je Schrifttyp zu Beginn der 
Zeile oder ein entsprechender Punktbe- 
fehl weiter. Beide Möglichkeiten sind in 
Tabelle 3 zusammengefaßt und sind hin- 
sichtiich der wählbaren Befehlsform 
gleichwertig. Punktbefehle müssen, wenn 
Normalschrift am Zeilenanfang wieder- 
kehrt, wieder auf den Standardwert zu- 
rückgestellt werden; in unserem Fall also 
mittels .PO8 zu Beginn der neuen Normal- 
zeile. 


60 


‚nat ander nasse gasan Hnnne Hnaın Manor Hana ein 


Froportional 
neuen Zeile = 


mn Kan Anne wende an aa Hukee 


Elite 


neuen Zeile = 

b} neue Zeile mit 

u 
| Italie 

BOB. a) 

. neuen Zeile = 

i b’ neue Zeile mit 

Smsat warm arme armen umeen nenn sen Pi j- Sons dent unse Arsen mann. Ort Mean ne Scan: wem aanes Mana. Ares Mar Pie 

Engschrift 

Dolls . A) 

: neuer 

. b} neue Zeile 


ans ononn msn sonne muncn non üsoen mama ser art arme moncn onsce nunan munen suren 


zeile = & 

mit 
Sperrschrift 

DB a) 


x neuen Zeile = 


| Breit 
.„FO4 ! a) 
: b) neue Zeile mit 


matt Hetnn Mpman Mann Damen Mphme Mpiare Minen Hunde Mid Wen hand Mnnes MeHEE Hana Meike Mm makes mnmn Mate Minen Hanna Mana Some Mae Miet name 


ee 


entweder fortlaufend schreiben und 
keine {!) 
b} neue Zeile mit .po? in Extrazeile davor richten 


jonas Hanne Anker mann Aapin Hmtee Ahnen nnenn Ma end mike eine armen Anne Amann ManmE Man Mh Munde mnit Her 


keine Blanc-Lösung, 


Schr i ft 


add Munde Made aiee Ai Mae Mena Mahn Mh Mb hapr Medi Mine Arne Meder MEHhn Mid Mann Ant Man Annie Mande Innte menne An areas Senne Andanen Mena Meine it mache Mahn Fern mean anne Mana Maine mie Maps 


a) entweder fortlaufend schreiben und zu Beginn der 
2 Blancs setzen, 
b) neue Zeile mit .poßs in Zeile zuvor richten 


cclear 5 


aetan Hier muens r4nh Men mie Amine mei am par Aid rate Mann ine Ang Murten Men ie 


a) entweder fortlaufend schreiben und zu Beginn der 
4 Blancs geben, 
.polB ın 


mirss wesnn Han Mae mide mprih Adam min Minen Mine MEnMn Mani Mandt Aamd MEHR Mmie meh KendE HAMDE HAM Mainnd Amme Mene Miuhe Meree Minen Mirbb Adnan Ahnen Annas Madame ae AFHEE MAHEe Meran nme Min Anne man Anseme Aaime Mus 


oder 
Zeile davor richten 


entweder fortlaufend schreiben und zu Beginn der 
2» Blancs geben, 
.po8 in Zeile davor richten 


oder: 


Inte Heer Auen pin Haren mann Hanna Mamas HH Manit ip MEHR Minds Fine wenn Mann be Hanse AR ha Min Mann Tann Arne Menue Mamue Manee 


entweder fortlaufend schreiben und zu Beginn der 
Blancs setzten, 
003» 


wutee site urmmn Hamas Mann Memmmd Ammiad SER Matek Kat Menee Wenn Hmm Adna Mrd Mund Ama ieh mine Feten MEHen Mae ADMEE MBuK Mite puren dad mrnns wnnnE Mann Mann Home ut 


oder a 


in Zeile davor richten 


zu Beginn der 
Blanc-lösung, nurs 


je anne mehr eher Mena Mamnd Anni Men Amen Amsne Mensn Habe Helme Mann Hand Mpnnm Henn Munde Mmpdb Mahn mine MAR Mahnk Hahk Mmee Ak Minh ab Men mans mensn Man 


da BREIT über Li-Rand, nur: 


.po4 in Extrazeile davor richten 


m m m m 1 0 


Alle Werte gelten nur für den DEFAULT— .P0O8 — Wert von WS ! 


Tabelle 3 


Individuelles Druckformat 

Hat man sich schon einmal der Patch- 
Arbeit angenommen, so besteht die Gele- 
genheit, gleichzeitig und ohne Aufwand 
die Formatierung des Druckbildes nach 
eigenen Wünschen neu zu gestalten. Die- 
se Vorzugseinstellung (default) wird dann 
bei Beginn der Arbeit automatisch vom 
Wordstar gewählt. Es ist ärgerlich, wenn 
bei jeder neu anzulegenden Datei erst ein- 
mal .PL72 gesetzt werden muß, nur weil 
der im Original vorliegende amerikanische 
WS ein .PL66 für das in den USA ge- 
bräuchliche und dort nur 11 Zoll lange 
Papier einstellt, während wir in Europa 12- 
Zoll-Papierböogen verwenden. Auch 
schätzt nicht jeder die drei zusätzlichen 
Leerzeilen am Kopfrand bei gleichzeitig 
nur sechs freien Fußzeilen, wodurch 
Punktbefehle wie .MTO und .MB10 voran- 
gestellt werden müssen. Ein gut gepatch- 
ter WS benötigt überhaupt keine Punktbe- 
fehle für die Standard-Druckmaske. Je- 
dermann hat aber die Möglichkeit, seinen 
indivudellen Vorstellungen mit Hilfe des 
INSTALL-Programms freien Lauf zu las- 
sen. Patch as patch can: Individuell und 
universell zugleich, das ist die besondere 
Stärke von Wordstar! 





(Der zweite Teil dieses Aufsatzes unter 
dem Titel „Wordstar druckt internationale 
Zeichensätze“ erscheint im nächsten 
Peeker.) 


Blick über den Zaun: 

Die moderne Satztechnik 

Ein Mikrocomputer kann in Verbindung mit 
einem Matrixdrucker die Fähigkeiten einer 
Satzanlage bestenfalls nachahmen, aber 
niemals erreichen. Werfen wir hierzu ei- 
nen Blick über den Zaun in das grafische 
Gewerbe: 

Die heutigen Druckschrift-Zeichen haben 
in der Regel eine Dickte (= schriftzeichen- 
abhängige Breite = character width), die 
x/18tel des breitesten Buchstabens des 
jeweiligen Schriftgrades einnimmt. Ein „v“ 
nimmt beispielsweise 9/18 des großen 
„W“ mit 18/18 ein. Ein 8-Punkt-„v"“ (1 
Punkt = 0,375 mm) wäre damit effektiv 
9/18 * 8x 0.375 = 1,5 mm breit. Nun gibt 
es jedoch von derselben Schriftart, z.B. 
Helvetica, unterschiedlich breit laufende 
Schriftschnitte, z.B. Helvetica schmalma- 
ger, breithalbfett usw. Während bei einem 
normalen Schnitt der breiteste Buchstabe 
„W“ ein „Geviert” (= gedachtets Buch- 
stabenquadrat) einnimmt, belegt bei- 


Peeker 7/85 





spielsweise beim schmalmageren Schnitt 
der breiteste Buchstabe nur ein „ge- 
stauchtes“ Rechteck. Dieser Sachverhalt 
wird als „Set“ bezeichnet (= schrift- 
schnittabhängige Breite). Der Begpriff 
„Piteh“ (von Matrixdrucker-Herstellern 
geprägt?) entspricht annähernd dem Be- 
griff „Dickte“ bzw. „Set“. Was die Pixel 
oder Nadeldrucker-Punkte anbelangt, so 
wird im Kathodenstrahl-Lichtsatz ein ein- 
zelner Buchstabe meist durch eine 128- 
mal-128-Bildpunkt-Matrix aufgelöst. Bei 
einer 8-Punkt-Schrift würde dies bedeu- 
ten, daß auf einem „Geviert” von 3 mal 3 
mm maximal über 160.000 Bildpunkte be- 
lichtet werden könnten. Es ist somit klar, 
daß man selbst mit einer Lupe bei Druck- 
buchstaben keine „Pünktchen“ mehr er- 
kennen kann. In der Reprografie würde 
dies einem 400er „Raster“ entsprechen. 
Unter Raster versteht man in Deutschland 
die Anzahl der Punkte oder Punktlinien pro 
Zentimeter, in den USA pro Zoll (dpi = 
dots per inch; Zoll ca. 2,5cm). 
Beispielsweise beträgt die Punktauflösung 
beim Macintosh oder beim Apple Ile mit 
Double Hires ca. 80 dpi; dies entspricht 
etwa einem 32er Raster, wie man ihn bei 
Tageszeitungen verwendet. Zum Ver- 
gleich haben hochwertige Farbreproduk- 
tionen einen 70er bis 80er Raster. Aber 
die Druckschrift selbst bringt es dank 
Lichtsatz auf über 1000 dpi = über 400er 
Raster. Würde der Macintosh oder Apple 
le über eine Bit-Map-Grafik mit solcher 
Hochauflösung verfügen, so wäre ein Zu- 
satz-RAM von umgerechnet ca. 7 Mega- 
bytes erforderlich. Weder ein 6502 noch 
ein 68000 wäre jedoch in der Lage, diese 
„Pixel-Masse“ zu bewältigen. 
Die Firma Compugraphic in Langen teilte 
mir hierzu mit, daß beispielsweise die cg 
8600 sogar mit einer Auflösung von 2048 
Linien pro cm arbeitet, wobei allerdings 
keine Bildpunkte, sondern Vektoren ge- 
speichert werden. Der Peeker wird auf 
einer Linotype mit 300 Linien pro cm ge- 
setzt (Tageszeitungssatz!). U. Stiehl 

‘ 


Peeker 7/85 


CPM 4 


ProDOS-Editor 1.0 


Applesoft-Editor 
unter ProDOS-Betriebssystem 


von U. Stiehl 


1984, Diskette und Manual, DM 98,— 
ISBN 3-7785-1024-X 


Mit diesem neuen Editor — übrigens 
der bislang einzige deutsche Pro- 
DOS-Editor — wird dem Applesoft- 
Programmierer ein Werkzeug zur ef- 
fektiven Programmierung unter dem 
Betriebssystem ProDOS gegeben, 
denn die früheren Editoren sind alle- 
samt unter ProDOS nicht mehr lauf- 
fähig. 


Unter anderem sind folgende Fea- 
tures implementiert worden: 


— Zeilenorientierter Editor mit jedem er- 
denklichen Redigierkomfort (Insert, 
Delete, Tab, Restore, freie Cursorbe- 
wegung in allen vier Richtungen, Einga- 
be von Ctrl-Buchstaben in Applesoft- 
Zeilen usw.) 

— Renumber (Zeilen-Umnumerierung) 

— Xreference (sortierte Variablenliste) 

— Suchen von Tokens, Strings und Varia- 
blen 

— dezimale und hexadezimale Umrech- 
nungen 

— Ausführung von Monitorbefehlen aus 
dem Editor heraus 

— Listen des Applesoft-Programms in 
speicherinterner Form als Hex-Dump 

— Suchen von Hex-Folgen, Adressen 
oder Speicherstellen im gesamten 
RAM-Bereich einschließlich der 
Language-Card 


— frei definierbare Tastatur-Macrobefehle 


Der Applesoft-Editor liegt in einem 
von ProDOS geschützten Bereich 
und läßt sich per Tastendruck vor- 
übergehend abschalten und ebenso 
einfach wieder aktivieren. 


Gerätevoraussetzung: Apple Il+, Ile 
oder IIc 


Hüthig Software Service, 
Postfach 10 28 69, 
D-6900 Heidelberg 





rrelectronic 


Elektronik - Fachliteratur - Personai-Computer 


DataMagnetics-Disketten SS,SD ı0 stk. 29.90 


BASF qualimetric® 
Disketten 1.Wahl 


BASF-Disketten softsektoriert in Pappkarton 
3,25"-Disketten alle ohne Aufpreis mit Verstärkungsring. 





Type Beschreibung 10 Stk 
IXV ..... 48 TPI, 1-seitig, einfache Dichte ........ 39,90 
LDN. 4. 48 TPI, 1-seitig, doppelte Dichte ..................... 49,50 
2/96V.... 96 TPI, 2-seitig, doppelte Dichte ..................... 82,50 


Sicherheits-Disketten 


3,25'-Disketten mit Verstärkungsring; softsektoriert. 


744-0 ....... 48 TPI, 1-seitig, doppelte Dichte .................. 49,50 
7949-0; 48 TPI, 2-seitig, doppelte Dichte .................. 72,50 
TAT-0 96 TPI, 2-seitig, doppelte Dichte .................. 89,50 


Disketten - Doubler nur noch .. 12.5 
Zum Anbringen der zusätzlichen Schreibkerbe. 


9,29” - Plastikbox UNSER HIT! 5.95 
Formschöne Klappbox aus Hart-PVC für ca. 10 Disketten in 
den Farben grün, orange, schwarz, hellgrau, elfenbein oder 
anthrazit. Bitte die gewünschte Farbe angeben. Mischbar. 
Staffelpreise: I St. 5.95 10 St. 49.50 100 St. 459.- 


2,25" - Disketten-Kästen 
Diskettenbox ohne Schloß 24.95 


Repräsentative Disketten-Box aus deutscher Fertigung in den 
Abmessungen (T x B x H) 306x 174x144 mm ohne Schloß mit 
topas farbenern Deckel für ca. 80 Disketten und 4 be- 
schriftbaren Stützplatten. Sehr preiswert! 


Diskettenbox 


aufklappbar 

für ca. 50 Disketten 

aus stoßfestem, antistatischem 
transparentem Acryl mit 4 beweg- 
lichen, beschriftbaren Stützplatten. 





29.30 






DiskettenboXx abschliesbar 39.50 


für ca. 85-100 Disketten 

aus antistatischem ABS-Kunststoff, 
Deckel aus hochwertigem Acryl(rauch- 
glasfarben). Der Trog kannplatzsparend VV 
in den Deckel gestellt werden. 9 beweg- (= —— 7 
lichen Unterteiler mit beschriftbaren 
Stützplatten sorgen für Übersicht. 


< 


Akustikkoppler s21d 289.- 


300 Baud Modem CCITT Y.21 Standard 


Akustikkoppler s21d 289.- 
300 Baud Modem CCITT Y.21 Standard 


7 an — 


| 


———— [| 7 mr 


* Mit FTZ-Nummer * Gebühren- u. anmeldefrei 
* Anschluß an alle Computer mit Y24-Schnitt 
stelle * Vollduplexbetrieb * Answer- und 
Orıginate-Modus * MADE IN GERMANY * 
TELETERNT ZH aeeiniaiansiin 198 .- 
Telekommunikationssoftware für den Apple. 

* ohne serielles Interface * Datenübertragung 

über den Gameport * Anschlußfertig an s21d. 





Unser großer Hit auch für Ihren Apple //e: 
80 Zeichen/64kB-RAM für APPLE //e 


Er dtsch. Qualitätsprodukt 
al, 


incl.Demo-Diskette und 
MR 1 ausführlichem Handbuch. 

jetzt nur noch...........- 1 95.- 

8 Bit/16 Kanal A/D-Wandler 490.- 


Preisgünstiger universeller A/D-Wandler. Kurzdaten: 
8-Bit-Auflösung, R,= | MOhm, 15 usec/Messung. 


Accelerator //e_............... 1398.- 


Mit dieser Karte laufen Ihre Programme bis zu 3,5 mal 
schneller. (NCR 65C02; 3,5 MHz Takt; 80 kB-RAM dyn.) 
Erphi-Controller AFDC-2 ....... 287.- 


Dazu passende Laufwerke 80 Track (TEAC FD-55F) auf Anfrage. 






Software-Hits für den Apple //e: 


Print Shop die perfekte Heimdruckerei 139.50 
mit der man in wenigen Minuten Grußkarten, Visitenkarten 
und sogar Banner entwerfen und ausdrucken kann. 
Dazzle Draw oas hochwertige Grafik-Set 1 79.- 
Hochwertiges Grafik-Set für die verschiedensten Anwen- 
dungen. Ob für Computerkunst oder Bauzeichnungen. 


Hardware-Hits für den Macintosh: 


Thunder Sta. 2... 1198 .- 
Lesekopf für Imagewriter (anstelle des Farbbandes) zum 
übertragen von Grafiken oder Text in MacPaint-Dokumente. 


Die Aufrüstung Ihres 128k MAC auf 
512k kostet bei uns nur: 1290.- 


Apple/77e, //c + Macintosh Yorführ- und 
Messegeräte preisgünstig abzugeben. 


Ladenverkauf, Vorführung und fachgerechte Beratung 


rr electronic 


Elektronik - Fachliteratur - Personal-Computer 

6900 Heidelberg 1 Breslauerstr. 29 Tel.06221/781500 
Geschäftszeiten: Mo. - Fr. 9-13 +14 - 18 Sa. 9 -13 Uhr 
Versandanschrift: 6900 Heidelberg I Dammweg 2 


61 


Pascal- 
Preisausschre 





Da heißt es mitmachen! 


Es wird die Aufgabe gestellt, 
mit einem „getunten“ Pascal-Programm Pr 
einen ProDOS-TXT-File Ä 
in einen Pascal-TEXT-File yG 

zu konvertieren. 






Pascae Prus® 


. m © Ara re yca e Qas<2 


Bei unserem Pascal-Wettbewerb N \ x erh 


kc ]; u at i ie j ! ö i r UN 











7 
ÜG 
@, 4 






1. Preis: DM 500,- (5 
2. Preis: DM 250,- 
3.-25. Preis: Buchtitel 


IR 
NY 


Y. 
ING 
ur 





62 Peeker 7/85 

















DH 
at 





N 









a \\\ 
Ss @ 





_ 


all 


au 


N 


\ 


Peeker 7/85 


IN 
N 
NN Nu 


ÄRS 


RN 
S 


\ 


\ ".\Q \ 
3 \ 





Ä 


a 


Sie erinnern sich sicherlich noch an das 
erste Peeker-Heft (September 1984), das 
ein Primzahlen-Preisausschreiben ent- 
hielt. Aufgabenstellung: Errechne die 
Primzahlen im Bereich 2-8191 so schnell 
wie möglich. Damals gingen 279 Lösun- 
gen — mit der sensationellen Bestzeit von 
0,055 — ein, die allesamt in Assembler 
geschrieben waren. Bei der Durchsicht 
der Lösungen ist mir dann „gedämmert”, 
daß ich bei dem Primzahlen-Wettbewerb 
nicht nur auf Geschwindigkeit, sondern 
auch auf Kompaktheit des Programms hät- 
te abheben sollen. Damit hätten sich un- 
elegante Lösungen mit zum Teil 8K Ob- 
jektcode verhindern lassen. Deshalb wird 
unser neues Preisausschreiben — diesmal 
für Pascal-Fans — beide Aspekte berück- 
sichtigen. 


Die Übertragung und Konvertierung von 
Pascal-TEXT-Files auf ProDOS-Disketten 
oder von ProDOS-TXT-Files auf Pascal- 
Disketten hat im Gegensatz zur Errech- 
nung von Primzahlen einen praktischen 
Nutzwert: Pascal-Programmierer können 
nämlich dann den Quellcode mit Ap- 
pleworks, das unter ProDOS läuft, sehr 
komfortabel redigieren. Hierzu sind zwei 
verschiedene Utilities erforderlich: 


1. PASTOPRO (From Pascal to ProDOS): 
Dieses Hilfsprogramm konvertiert Pascal- 
Textfiles in ProDOS-Textfiles. 

2. PROTOPAS (From ProDOS to Pascal): 
Dieses Hilfsprogramm konvertiert Pro- 
DOS-Textfiles in Pascal-Textfiles. 


1. PASTOPRO 


Gegenstand des Pascal-Preisausschrei- 
bens ist die PROTOPAS-Utility. Da ich zur 
Erläuterung der Wettbewerbsbedingungen 
aus verständlichen Gründen kein Muster 
der PROTOPAS-Utility vorstellen kann, 
werde ich statt dessen eine PASTOPRO- 
Utility beschreiben (siehe Listing). Diese 
leistet im einzelnen folgendes: 


1. PASTOPRO wird unter dem ProDOS- 
Betriebssystem mit RUN PASTOPRO von 
Slot 6, Drive 1 gestartet. 

2. Danach erscheint ein spartanisches Me- 
nü, das Sie auffordert, eine Pascal-Disket- 
te in Slot 6, Drive 2 einzulesen. 

3. Nach „W = WEITER“ werden am Bild- 
schirm alle TEXT-Files, die sich auf der 
Pascal-Diskette befinden, angezeigt. Es 
werden nur TEXT-Files (also keine CODE- 
Files usw.) ausgewiesen, denen eine fort- 
laufende Nummer von 1 bis N vorange- 
stellt ist, z.B. „I SYSTEM.WRK.TEXT, 2 








SSCHRE 
sus ’ IS, 
Werben? 


TEMP.TEXT“ usw.). Nun wird man aufge- 
fordert, die gewünschte Datei-Nummer 
einzugeben. 

4. Gibt man keine Datei-Nummer im Be- 
reich 1 bis N oder lediglich Return ein, so 
wird das selektive Pascal-Directory erneut 
angezeigt. (Man kann vorher die Pascal- 
Diskette wechseln.) 

5. Gibt man eine existente Datei-Nummer 
ein, so beginnt der Übertragungsvorgang 
von der Pascal- auf die ProDOS-Diskette 
mit einem Piepston und der Anzeige von 
„*%** START“. Der Übertragungsvorgang 
bzw. das Programm selbst wird mit einem 
erneuten Piepston und der Anzeige von 
„*** ENDE“ beendet. Die Zeitdifferenz 
zwischen erstem und zweitem Piepston ist 
die (von uns handgestoppte) Kopierzeit. 


2. PROTOPAS 


Das Wettbewerbsprogramm PROTOPAS 
muß folgende Voraussetzungen erfüllen: 


1. PROTOPAS.TEXT muß als einheitlicher, 
d.h. nicht aufgeteilter, Quelltext (SY- 
STEM.WRK.TEXT = PROTOPAS.TEXT) 
vorliegen, der unter Pascal 1.1 und 1.2 
„normal“ compiliert werden kann, d.h. oh- 
ne Assembler, Linker usw. Zu diesem 
Zweck sollte also die Diskette neben SY- 
STEM.WRK.TEXT höchstens folgendes 
Standard-Files von Pascal 1.1 oder 1.2 
enthalten: 

SYSTEM.APPLE 

SYSTEM.PASCAL 

SYSTEM.MISCINFO 
SYSTEM.COMPILER 

Im übrigen kann PROTOPAS auf Tricks 
aller Art zurückgreifen (z.B. „gepokte“ 
Maschinenroutinen ähnlich wie bei PAS- 
TOPRO usw.). 

Die Zeilen des Quelltextes sollen eine 
Länge von 79 Zeichen nicht überschrei- 
ten, damit man ihn mit einem normalen 
„SYSTEM.EDITOR“ ansehen und ggf. im . 
Peeker ausdrucken kann. 

(Die Gesamtlänge von PROTOPAS.TEXT 
wird ausgewiesen, wenn man ihn mit „Up- 
date“ oder „Write“ speichert.) 

2. PROTOPAS.CODE muß sinngemäß ein 
„normaler“ Objektcode sein, der über 
„Execute“ gestartet werden kann. Es ver- 
steht sich von selbst, daß wir die einge- 
reichten Programme auf einem „norma- 
len“ Apple Il testen werden, also keine 
Accelerator-Karte, kein Z80 mit Turbo- 
Pascal usw. 

(Die Länge von PROTOPAS.CODE kann 
man über das kleine Programm „LIBRA- 
RY.CODE“ erfragen, das sich auf der Pas- 
cal-Systemdisk Nr. 3 befindet.) 


63 





3. Der Einfachheit halber sollte sich die 
PROTOPAS-Diskette in Slot 6, Drive 1 
(Volume „4:“) und die ProDOS-Diskette 
in Slot 6, Drive 2 (Volume „5:“) befinden. 
4. Nach einem knappen Minimenü (mit 
Programmname und Name des Program- 
mierers) sollte PROTOPAS dann das Pro- 
DOS-Volume-Directory selektiv in bezug 
auf die durchnumerierten TXT-Files anzei- 
gen (siehe oben). Um PROTOPAS nicht 
unnötig kompliziert zu machen, wird also 
auf Subdirectories verzichtet. 

5. Nach Eingabe der gewünschten Datei- 
Nummer sollte der Übertragungsvorgang 
mit einem Piepston und „*** START“ be- 
ginnen und mit einem Piepston und „x%*%* 
ENDE“ enden, nachdem die konvertierte 
Ausgangsdatei auf der Zieldiskette ge- 
speichert worden ist. Vor „sakk START“ 
darf sich bereits das Volume-Directory im 
Speicher befinden. Dagegen dürfen der 
Index-Block und die TXT-Datei selbst na- 
türlich erst nach „START“ eingelesen 
werden. Das Einlesen und Anzeigen des 
Directory ist mithin nicht zeitkritisch. 

6. Auf der Pascal-Diskette darf noch keine 
mit „Make“ o.ä. im voraus „präparierte“ 
Zieldatei existieren. Damit keine Namens- 
Konflikte auftreten, sollte die Zieldatei den 
provisorischen Namen „TEMP.TEXT“ (für 
„temporary textfile“) erhalten. 

7. Die ProDOS-Ausgangsdatei sollte eine 
Größe von bis zu 32768 Bytes haben dür- 
fen (32K). Mehrfach-Leertasten nach Re- 
turn sind in die pascal-typischen Tabulato- 
ren umzuwandeln. Beispiel: 

Aus OD 20 20 20 20 20 

wird OD 10 25 

„10“ steht für Tab und „25“ steht für $25 
minus $20 = $05 = 5 Leertasten. Die 
Zieldatei wird damit entsprechend kom- 
pakter. 

Ctrl-Zeichen (außer $0D) sind zu eliminie- 
ren und Bit 7 on ist in Bit 7 off umzuwan- 
deln. 

8. Der Zeittest (Zeit zwischen „srkk 
START“ und „##** ENDE“) wird anhand 
einer ProDOS-Testdatei namens „TEMP“ 
durchgeführt, die aus 21 Textblöcken be- 
steht und exakt 18360 Bytes umfaßt (siehe 
Muster Testdatei sowie Miniprogramm, 
das Testdatei erzeugt). Die Pascal-Zielda- 
tei hat dann nach Tab-Umwandlung einen 
Umfang von exakt 16840 Bytes und paßt 
damit gerade noch in den Pascal-Editor- 
Arbeitsspeicher. 

9. PROTOPAS sollte über eine rudimentä- 
re Fehlerabsicherung verfügen. Wenn 
man beispielsweise anstelle der Datei- 
Nummer einen String eingibt, so darf das 
Programm nicht automatisch zusammen- 
brechen. Eine Absicherung gegen falsch 


64 


eingelegte Disketten (z.B. DOS 3.3 statt 
ProDOS usw.), gegen zu große Textfiles 
(größer als 32K) usw. wäre dagegen zuviel 
verlangt. Hier ist der Programmabbruch 
erlaubt. 


Nehmen wir als Beispiel ein ähnliches Pro- 
gramm (GETDOS zur Umwandlung von 
DOS-3.3- in Pascal-Textfiles; siehe 
Peeker, Heft 1/1985, S. 70ff.). Diese Utility 
würde den Wettbewerbsbedingungen aus 
drei Gründen nicht genügen: 

— Erstens wird kein DOS-Catalog ange- 
zeigt. Vielmehr muß man hier den Dateina- 
men „blind“ eingeben (vgl. 4. Bedingung). 
— Zweitens werden Mehrfach-Leertasten 
nicht in „1O XX“-Tab-Sequenzen umge- 
wandelt, womit zu große Zieldateien ent- 
stehen (vgl. 7. Bedingung). 

— Drittens „verabschiedet“ sich das Pro- 
gramm mit „Bad Input“ und „Re-initia- 
lize“, wenn man im Menü mit einem String 
statt mit einer Zahl antwortet (vgl. 9. Bedin- 


gung). 


3. Punktesaldo 


Die Gewinner des Wettbewerbs werden 
nach einem „Punktesaldo“ ermittelt, der 
sich aus drei Positionen zusammensetzt: 


1. Länge von PROTOPAS.CODE in Bytes 
2. Länge von PROTOPAS.TEXT in Bytes 
3. Kopierzeit in Sekunden mal 100 


Nehmen wir als Beispiel das gelistete Pro- 
gramm PASTOPRO. Der „CODE-File“, 
d.h. das Applesoft-Programm selbst, hat 


eine Länge von 1330 Bytes. Der „TEXT-. 


File“, der normalerweise bei einem Ap- 
plesoft-Programm gar nicht benötigt wird, 
hätte eine Länge von 1950 Bytes. Und 
schließlich dauert der Konvertierungsvor- 
gang für die Testdatei „TEMP.TEXT“ 19,5 
Sekunden; 19,5 mal 100 = 1950. Damit 
ergäbe sich ein „Punktesaldo“ von 1330 
+ 1950 + 1950 = 5230. 


4. Teilnahmebedingungen 


Wenn Sie teilnehmen möchten, so senden 
Sie uns bis zum 22.07.1985 (Posteingang) 
eine adressierte Postkarte mit dem Stich- 
wort „Pascal-Wettbewerb“ und folgenden 
vier Zahlen: 


xxxx CODE-File-Länge (Bytes) 
xxxX TEXT-File-Länge (Bytes) 
xXxx Kopierzeit (Sek.) mal 100 


xxxx Punktesaldo 


Die 40 besten Punktesaldo- „Kandidaten“ 
werden dann von uns am 23.07.1985 
(Postausgang) per Eilboten gebeten, uns 
leihweise zur Überprüfung der Werte eine 
formatierte Pascal-Diskette (35 Spuren) 
mit dem Volume-Namen „P:“ und den 
Files PROTOPAS.TEXT und PROTOPAS 
.CODE bis spätestens 01.08.1985 (Post- 
eingang) zuzusenden. Beachten Sie, daß 
Sie bei der Kopierzeit die Sekundenzahl 
auf eine %» Sekunde abrunden können, 
bevor Sie sie mit 100 malnehmen. Wenn 
unsere eigenen Überprüfungen einen hö- 
heren Punktesaldo ergeben, als auf der 
Postkarte vermerkt ist, so wird der höhere 
Punktesaldo eingesetzt. Wenn wir umge- 
kehrt einen niedrigeren Punktesaldo er- 
mitteln, so gilt trotzdem Ihr eigener Post- 
karten-Punktesaldo. Damit soll ausge- 
schlossen werden, daß Sie nach dem Ein- 
senden der Postkarte noch Programmver- 
besserungen vornehmen. 

Wir werden PROTOPAS.TEXT mit „nor- 
malem“ Pascal 1.1 und 1.2 zu compilieren 
versuchen und dann mit Hilfe des neu 
entstandenen SYSTEM.WRK.CODE die 
Textdatei übertragen, welche zusätzlich 
einige Ctrl-Zeichen, Bit-7-on-ASCIl-Zei- 
chen sowie etwas „Schrott“ im letzten 
Block enthalten wird. 

Die Namen der Gewinner werden dann im 
Heft 9/1985 mit dem Quellcode des 
Hauptgewinners veröffentlicht. Sollten zu- 
fällig mehrere Gewinner den gleichen 
Punktesaldo haben, so entscheidet das 
Los. Im übrigen ist der Rechtsweg ausge- 
schlossen. Der Hauptgewinner erhält DM 
500,-, der Zweitgewinner DM 250,-, und 
die weiteren Gewinner (3.-25. Preis) er- 
halten das Buch „ProDOS für Aufsteiger, 
Band 2” inkl. Begleitdiskette. 

U. Stiehl 


I 


Peeker 7/85 





Pascal-to-ProDOS-Konverter 


l. Länge als BIN-File: 1330 Bytes (entspräche Pascal-CODE) 
2. Länge als TXT-File: 195® Bytes (entspräche Pascal-TEXT) 
3. Kopierzeit: 19,5s (wird mit 1®® multipliziert) 

4. Punkte: 5230 (1330 + 1950 + 19,5 x 199) 


Die Kopierzeit berechnet sich aus der Differenz zwischen 
den zwei "Piepstönen'" in den Programmzeilen 40-59 
von PASTOPRO (**%* START bis *%*%* ENDE). 


Testdatei 


Die Pascal-Testdatei umfaßt 36 Blöcke (brutto) 
oder 1684® Bytes (netto). 

Die ProDOS-Testdatei umfaßt 37 Blöcke (brutto) 
oder 18368 Bytes (netto). Der Mehrzuwachs ist 
in den Tabulatoren begründet. 


Aufbau der Testdatei: 

21 durchnumerierte Textblöcke mit 15 treppenförmig 
eingerückten Zeilen zu je 5® Zeichen. Unter ProDOS 
umfaßt 1 Textblock exakt 87® Bytes. 870 * 21 = 18279. 
Einschließlich der Textblocknummern und der Returns 
zwischen den Blöcken ergeben sich dann 18369 Bytes. 


Anfang 


l 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 


2 
(Textblöcke 2 bis 21 genauso wie Textblock 1) 


Ende 


Die ProDOS-Testdatei kann mit folgendem Miniprogramm 
erzeugt werden: 


108 PRINT CHR$ (4)"OPEN TEMP": PRINT CHR$ (4)"WRITE TEMP" 
110 PRINT : PRINT "Anfang": PRINT 

128 FOR X = 1 TO 21: PRINT X 

130 FOR Y=1 TO 15 

149 S=Y- 1: IFS > THEN FOR Z = 1 TO S: PRINT " ";: 
150 FOR Z = 1 TO 5®: PRINT "A";: NEXT Z: PRINT 

16® NEXT Y: PRINT 

170 NEXT X 

180 PRINT "Ende'": PRINT 

198 PRINT CHR$ (4)"CLOSE'" 


NEXT Z 


PASTOPRO 


10 DATA 76,28,3,76,63,3,76,129,3,0,0,0,0,3,224,0,0,0,90,32, 
0,191,128,13,3,176,76,96,169,2,141,17,3,169,®,141,18,3, 
169,14,141,16,3,32,19,3,238,16,3,238,16,3,238,17,3,173, 
17,3,2®1,6 
DATA 208,237,96,169,14,141,16,3,173,9,3,141,17,3,173, 
10,3,141,18,3,32,19,3,174,16,3,232,232,142,98,3,142, 
16,3,169,255,141,0,16,224,142,144,1,0,238,17,3,298, 
3,238,18,3,173,17,3,205,11,3,144,216 

20 DATA 173,18,3,205,12,3,144,208,96,169,0,133,206,169, 
14,133,207,160,0,177,206,249,40,201,255,208,1,96,41l, 
127,201,13,240,35,201,32,176,31,201,16,208,21,20®, 177, 
206,201,33,144,11,170,169,32,32,237,253,2®2,224, 
32,208,246 
DATA 32,195,3,32,195,3,76,137,3,32,237,253,76,183,3, 
230,206,208,8,230,207,165,207,2®1,143,176,152,96: 

FOR X = 768 TO 975: READ Y: POKE X,Y: NEXT: 
IF PEEK (116) < 158 THEN PRINT "HIMEM!'": END 





Peeker 7/85 


60 


65 
70 


„0090999000, 
00° \)SSCHREIR 
au Sn 






LOMEM: 36608:M = 768:P = 3584:X = PEEK (48944): 
POKE M + 14,224:D$ = CHR$ (4): PRINT D$"PREFIX,S6": 
ONERR GOTO 78 
HOME: INVERSE: PRINT "PASTOPRO": PRINT "U.STIEHL": PRINT: 
PRINT "PASCAL";: NORMAL: PRINT "-DISK IN S6,D2": PRINT: 
PRINT "W = WEITER ";: GET X$: ON X$ <> "W" GOTO 35 
CALL M:O = ®: HOME: GOSUB 55: PRINT: PRINT: 
INPUT "NUMMER: ";X$:0 = VAL (X$): ON O=PORO>N 
GOTO 49: HOME: PRINT CHR$ (7)"%*%** START" 
GOSUB 55:Y = 256:X = PEEK (B) + PEEK (B+ 1) « Y+2: 
POKE M + 9,X - INT (X / Y) * Y: POKE M + 1, INT (X / Y): 
POKE M + 11, PEEK (B + 2): POKE M + 12, PEEK (B + 3): 
CALL M + 3 
xX$ = "TEMP": PRINT D$"OPEN"X$: PRINT D$"WRITE"X$: PRINT 
CALL M + 6: PRINT: PRINT D$"CLOSE": 
PRINT CHR$ (7)'"x** ENDE": END 
N = ®: FOR X = P TO P + 2047 STEP 26:L = PEEK (X + 6): 
ON L = ® GOTO 65: ON PEEK (X + 4) < > 3 GOTO 65: 

N+ 1: IFO= N THEN B = X:X = P + 2947: GOTO 65 
ON O0 > ® GOTO 65: PRINT N" ";: FOR Y= 1 TOL: 
PRINT CHR$ ( PEEK (X + 6 + Y));: NEXT: PRINT 
NEXT: RETURN 
PRINT D$"CLOSE'": HOME: PRINT "FEHLER " PEEK (222): END 


PASTOPRO.O 
(Gehört nicht zum Wettbewerb, da als DATA-Statements 
bereits im Applesoft-Programm enthalten.) 





ORG $9399 


PASTOPRO.O 


Als DATA-Statements in 
PASTOPRO enthalten. 


oo oıV m Aw mDd Hm 


%* 
* 
%* 
%* 
* Pascal-to-ProDOS-Konverter 
%* 
* 
* 
* 


U.Stieh1/18.05.85 
* 
IND EQU $CE 
COUT EQU $FDED 
MLI EQU $BFO® 


$PEP®-$SDFF:Datenpuffer (32K) 
$8ENY :Endmarker (FF) 
$8FQp : LOMEM 


$DEDD = 3584; $8F0D = 36608 


“rk Kr KH 


PUFBEG EQU $PEP® 
PUFEND EQU $8EßPd 
LOMEM EQU $8FQ9 
* 

DIR1 JMP DIR2 
READ1 JMP READ2 
WRITEl JMP WRITE2 
FIRSTBL HEX 6g60® 
LASTBL 


;$8Eßd-1 


; 768=M+ß 
‚771=M+3 
;774=N+6 
‚777=N+9 
‚779=M+11 


COUNT HEX 93 


Unit-Number 69 = 

(Beispiele) E®ß = S6,D2 

(Von Global Page $BF30 = 48944 
durch Basic-Programm ermittelt.) 


“*xrKk Kr KH 


= 
= 
HH 
-J 


HEX EP ‚782=M+14 
%* 

RDPUFL HEX 99 
RDPUFH HEX $® 
RDBLKL HEX 69 
RDBLKH HEX 68 

* 

* Blockread-Routine 
%* 

RDBLOCK JSR MLI 
HEX 89 

DA COUNT 
BCS 


‚stets Ö! 


* 
* Directory-Blöcke 2-5 lesen 


65 





66 


#+>PUFBEG 
RDPUFH 
RDBLOCK 
RDPUFH 
RDPUFH 
RDBLKL 
RDBLKL 
+6 


Pascal-Textfile-Blöcke einlesen 
von FIRSTBL + 2 bis LASTBL - 1. 
Der FIRSTBL ist bereits vom 
Applesoft-Programm um 2 erhöht 
worden. 


LDA #>PUFBEG 

STA RDPUFH 

LDA FIRSTBL 

STA RDBLKL 

LDA FIRSTBL+1 

STA RDBLKH 

JSR RDBLOCK 

LDX RDPUFH :$8C00 
INX ;$8DO9 
INX :$8E00 
STX ENDMARK+2 

STX RDPUFH 

LDA #$FF 


ENDMARK STA $19@® ;SEßß: FF 


* 


Wenn < $8Eßß, dann $8CQ9 
wegen 2-Page-Increment. 


CPX #>PUFEND 
BCC READ4 


"Tödliche" Fehler (BRK) 
a) Blockread-Fehler 
b) Datei > 32K 


STIRB HEX 0 ‚stirb! 


* 


READ4 INC RDBLKL 


* 


BNE READS 
INC RDBLKH 
LDA RDBLKL 
CMP LASTBL 
BCC READ3 
LDA RDBLKH 
CMP LASTBL+1 
BCC READ3 
RTS 


EEEETERERDESUN 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
I 


* 


Zu Ze Ze Zu Zu Ze Ze = 


Pascal-Datei über COUT schreiben 


Ein Pascal-Textfile hat folgende 
Struktur: 


Blöcke ® + 1: 
Systeminformationen, die 
übersprungen werden. Daher ist 
FIRSTBL effektiv FIRSTBL + 2. 


Blöcke 2 bis LASTBL - 1: 


Diese Blöcke enthalten die 
eigentlichen ASCII-Texte. Man 
beachte, daß LASTBL nicht den 
letzten Block DIESES Files, 
sondern den ersten Block des 
NÄCHSTEN Files darstellt. 


Doppelblocks 





Der Textfile ab Block 2 

ist in je 2 Doppelblocks 

zu 1924 Bytes zusammengefaßt, 
die am Ende mit Ctrl-ß's aufge- 
füllt sein können, auch wenn ein 
weiterer Doppelblock folgt. 
Daher müssen Ctrl-®'s stets 
ignoriert werden. Zu dem 
Tab-Problem siehe unten. 


“KK KFKH HU 


WRITE2 LDA #9 
STA IND 
LDA #>PUFBEG 
STA IND+l 
WRITE3 LDY #9 
LDA (IND),Y 
BEQ WRITE7 ;Ctr1-9 
CMP +#$FF ;Endmark 
BNE WRITE4 
RTS ‚Exit 
WRITE4 AND #$7F 
CMP #$@D ;Rtn? 
BEQ WRITES ‚Ja! 
CMP _ #$29 :ctr1? 
BCS WRITE8S ;Nein! 


Tab: $1® $28 nach Rtn entfällt 
Tab: $1® $XX = $XX-$29 Spaces 
(Ctrl-Zeichen außer $19 = Tab 
und $®D = Return ignorieren!) 


EZ Zur Zu Zu Zu > 


CMP _ #$19 ; Tab 
BNE WRITE7 

INY ‚IND+1 
LDA (IND),Y ‚Anzahl 
CMP_ #$21 

BCC WRITE6 ‚10 29! 


Mindestens 1 Space 


TAX ‚Anzahl 
WRITE5E LDA #$2® ‚Space 
JSR COUT 
DEX 
CPX #$29 
BNE WRITES 
* 
* 10 20 am Zeilenanfang 
x” 
WRITE6 JSR INCI ;2mal 
WRITE7 JSR INCI ;lmal 
JMP WRITE3 
* 
* Normale ASCII-Zeichen + Return 
%* 
WRITE8 JSR COUT 
JMP WRITE7 
* 
* Zeiger erhöhen 


“ 

INC1 INC IND 
BNE INC2 
INC IND+1 


Wenn IND+l = LOMEM = $8Fßß, 
dann Programmabbruch. Dieser 
Fall kann wegen $8Eßß:FF jedoch 
praktisch nicht vorkommen. 


“RK KKR 


03C9: LDA IND+1 
B3CB: CMP #>LOMEM 
BSCD: BCS STIRB 
BSCF: RTS 


208 Bytes 


Hinweis 


Die Peeker-Sammeldisk enthält die „komfortableren' Versionen 
PASTOPRO.1D für 1-Drive-Besitzer und PASTOPRO.2D für 2-Drive- 
Besitzer. 





Peeker 7/85 






LisaunddieFolgen 


von Ulrich Stiehl 


Als ich im März-Heft mitteilte, daß die Lisa 
nicht mehr „produziert werden wird“ (Fu- 
tur I), waren offenbar die Würfel bereits 
gefallen. Ursprünglich gab es von der Lisa 
mehrere Versionen, nämlich insbesondere 
Lisa 1 mit Diskettenlaufwerk, Lisa 2 mit 
5M-Festplatte und Lisa 2 mit 10M-Fest- 
platte. Zu Beginn dieses Jahres ließ man 
alle Versionen mit Ausnahme der Lisa 2/ 
10 fallen, die in Macintosh XL umgetauft 
wurde. Damit sollte zum Ausdruck ge- 
bracht werden, daß der Macintosh eigent- 
lich eine kleine Lisa ist. Diese Umbenen- 
nung und Verquickung mit dem Macintosh 
dürfte sich im nachhinein als Bumerang 
erwiesen haben, weil man sich wenig spä- 
ter dazu entschließen mußte, auch den 
Macintosh XL = Lisa 2/10 aus dem Pro- 
gramm zu nehmen. Der oberflächliche Be- 
obachter denkt nämlich jetzt, daß mit dem 
Macintosh XL ein Macintosh eingestellt 
worden ist. Mutato nomine de te fabula 
narratur... 


Im „Handelsblatt“ vom 30.5. steht, daß 
wegen der Produktionseinstellung der Lisa 
über 1600 Arbeitnehmer entlassen wer- 
den mußten, was die Börsenspekulanten 
natürlich nicht unbeeindruckt ließ. Norma- 
lerweise wird der „Abgang“ eines Mikro- 
computers nur noch von den Chronisten 
der Wirtschaftsblätter vermerkt. Ich halte 
es jedoch nicht für angebracht, in einer 
Mikrocomputer-Zeitschrift, die sich aus- 
schließlich mit Apple-Computern befaßt, 
stillschweigend zur „Tagesordnung“ 
überzugehen. Daß dem „Bürocomputer 
der Zukunft“, wie er in der Werbung in 
solchen und ähnlichen Slogans apostro- 
phiert wurde, letztlich doch kein Lorbeer- 
kranz geflochten wurde, ist meines Erach- 
tens auf drei Gründe zurückzuführen: 


1. Die Lisa war einfach zu teuer. Dies blieb 
natürlich auch der Firma Apple nicht ver- 
borgen, so daß der Anfangspreis von ca. 
DM 30000,- im Laufe des kurzen und trau- 


Peeker 7/85 


rigen Lebens der „Mona Lisa“ sukzessive 
gesenkt wurde, bis man zum Frust der 
wagemutigen Erstkäufer am Ende bei ei- 
ner Preisreduzierung von ca. 70% ange- 
langt war. 

2. Die für den Macintosh XL alias Lisa und 
den Macintosh konzipierte „Benutzer- 
schnittstelle“ mit Ikonen und „Klickiklick“ 
ist nach wie vor heftig umstritten. Hier 
prallen Welten glühender Verfechter und 
brüsker Gegner aufeinander. Zu welcher 
Seite ich gehöre, ist Ihnen ja bekannt. 

3. Die Lisa wurde nicht für IBM-(Großanla- 
gen-)kompatibel gehalten. Wie so oft im 
Leben, war hier nicht eine Sache, sondern 
die Meinung über eine Sache entschei- 
dend. Die Lisa wurde — ähnlich wie der 
Macintosh — von Apple bewußt als IBM- 
PC-unkompatibles Gerät konzipiert. Aber 
wer glaubte schon, daß man einen IBM- 
PC-unkompatiblen Mikrocomputer an eine 
IBM-Mainframe hätte anschließen können. 
Und wer sollte dies tun? Die Firma IBM 
etwa? Folgerichtig war dem Macintosh XL 
der Einzug in die von IBM-Rechnern be- 
herrschte Bürowelt versagt. 


In den USA haben praktisch nur noch zwei 
Mikrocomputer-Produzenten das Sagen, 
nämlich auf der einen Seite IBM und auf 
der anderen Seite Apple. Beide vereinigen 
auf sich einen Marktanteil von weit über 
60%, so daß alle übrigen Produzenten 
bereits „aus dem Rennen“ sind. (In 
Deutschland liegen die Dinge etwas an- 
ders, weil hierzulande Commodore nach 
wie vor eine sehr starke Marktposition 
hat.) Während jedoch Apple ausschließlich 
Mikrocomputer produziert, ist für IBM der 
PC-Bereich bislang noch ein „Nebenge- 
schäft“. Seit der Lisa, die vor zwei Jahren 
auf den Markt kam, versucht Apple mit 
aller Gewalt, in denjenigen Bereich der 
Büro-EDV einzudringen, der früher von 
der mittleren Datentechnik beherrscht 
wurde. Dabei scheute man sich in den 
Werbekampagnen des Jahres 1984 nicht, 


“kurzberichte 44 


No Orchids für Miss Lisa 


das Orwellsche IBM-Ungeheuer mit der 
„brave new world“ der Lisa und des Mac- 
intosh zu kontrastieren. Für Außenstehen- 
de stellen sich diese Kontrahenten als ein 
behäbig schlafender Gulliver und ein hek- 
tisch agierender Liliput dar. Immer dann, 
wenn er von Liliput an der Nase gezupft 
wird, wälzt sich Gulliver zur Seite und zer- 
malmt dabei irgend etwas unter sich. Heu- 
te war es die Lisa. Hoffen wir, daß Liliput 
morgen etwas mehr aufpaßt. 

In dem zitierten Handelsblatt-Beitrag wird 
bereits das Menetekel der Übernahme 
durch eine Fremdfirma an die Wand ge- 
malt. Dies erscheint mir abwegig, da Apple 
nach wie vor ein gesundes Unternehmen 
ist. Die weitere Entwicklung von Apple 
hängt im übrigen meines Erachtens weni- 
ger vom Erfolg des Macintosh ab. Das 
Ausscheiden von Steve Wozniak „in ge- 
genseitigem Einvernehmen“ zeigt, daß 
man immer noch nicht einsehen will, daß 
der Apple Il weiterentwickelt werden muß, 
und zwar so bald wie möglich, denn nach 
dem Lisa-Debakel ertönte der Gong für 
die letzte Runde um die Vorherrschaft auf 
dem amerikanischen Mikrocomputer- 
markt. 

Der Apple II läßt sich mit dem VW Käfer 
vergleichen, der ebenfalls jahrelang lief 
und lief. Irgendwann mußte er jedoch 
durch den VW Golf ersetzt werden, denn 
die Wünsche der VW-Fahrer waren ge- 
wachsen: etwas mehr PS, etwas mehr 
Komfort, etwas weniger Verbrauch usw. — 
kurzum alles etwas besser. Die Betonung 
liegt auf „etwas“, denn die Firma Apple 
macht seit geraumer Zeit den Fehler, über 
das Ziel hinauszuschießen. Wenn wir „im 
Bild“ bleiben, so ist der Macintosh das 
Elektroauto von übermorgen. Jedermann 
weiß oder ahnt zumindest, daß in einigen 
Jahrzehnten Vergaserautos durch Elektro- 
autos verdrängt sein werden. Doch wer 
kauft heute ein Elektroauto? Und warum 
nicht? Ähnlich ist es beim Macintosh. Je- 
dermann weiß, daß es in nicht allzuferner 


67 








Zukunft nur noch Grafikcomputer mit mon- 
strösen Betriebssystemen geben wird. 
Doch wer kauft heute einen solchen Com- 
puter? Und warum nicht? 


Was wir heute brauchen, ist ein gradueller 
Übergang vom Apple Ile/liIc zum verbes- 
serten „Apple Iig“. Einige Beispiele: 

1. 80-Zeichenkarte: Die Schriftqualität ist 
beim Apple Ile brauchbar, aber wie die 
Sitze des alten VW Käfer verbesserungs- 
würdig. Bit-Map-Grafik wäre keine Lösung 
für die Gegenwart, denn sonst würde der 
Apple II wie der Macintosh mit seinen 22K 
Bildschirmspeicher den Prozessor lahmle- 
gen. Ein sinnvoller Mittelweg wäre eine 
Schriftqualität in der Art der Ultraterm. Die 
Firma Videx hat es hier vorgemacht. Apple 
könnte es nachmachen. 

2. Prozessor: Der 1-MHz-65C02 ist 
brauchbar, aber doch für manche Applika- 
tionen zu „käferhaft“. Es muß nicht gleich 
ein 68000 oder ein sonstiger 16- oder gar 
32-Bit-Prozessor eingebaut werden. Ein 
sinnvoller Mittelweg wäre hier ein 65C02C 
in der Art der Acceleratorkarte. Die Firma 
Titan hat es hier vorgemacht. Apple könnte 
es nachmachen. 

3. Laufwerke: Ein 140K-Laufwerk ist wie 
der Kofferraum des alten VW Käfer. Zur 
Erinnerung: Er war vorne unter der runden 
Haube. Eine Reihe von Firmen hat gezeigt, 
daß auch 80-Spur-Laufwerke einwandfrei 
mit dem Apple Il funktionieren können. 
Apple könnte es nachmachen. 


Der Apple Il ist deshalb so erfolgreich, weil 
er „erzkonservativ“ ist. Nur wenige möch- 
ten ein hypermodernes Gerät kaufen, weil 
sie mit Recht befürchten, daß es über kurz 
oder lang wieder vom Markt verschwun- 
den sein wird (siehe Lisa). „Lieber lange 
einen Macki als kurz einen Mecki“, lautet 
die Devise. Trotzdem muß eine graduelle 
Weiterentwicklung stattfinden, damit sich 
der Apple II den sich ändernden Verhält- 
nissen anpaßt. Bleibt zu hoffen, daß die 
Firma Apple nicht wieder „graduell“ mit 
„abrupt“ verwechselt. 

(Anmerkung: „No Orchids for Miss Lisa“ 
ist eine Anspielung an das Buch „No Or- 
chids für Miss Blandish“ von J.H.Chase. 
In diesem „Top-10-Krimi“ hat sich eine 
junge Dame namens Blandish (alias Lisa) 
zum Schluß selbst aus dem Fenster ge- 
stürzt, weil sie die Realität nicht mehr er- 


tragen konnte.) 5 


68 











Sie müssen 
käalkulatemen erstellen ... 








Se müssen 
Rechnungen Schreiben... 





Sie müssen Schnell eın 
Angebet wusanmwenskellen... 










Sie brauchen Eıne zuver- 


lässine Lagervervaltuug 


| 
\ [LI 


Dam braucheu Sie 


HandMac 


Das Programm für das Handwerk. 





® das Ihnen diese Arbeiten abnimmt. 

© clas peziel für Sie in Deutschland 
entwickelt wurde 

® das Sie fort benutzen können , 
olue wehrwöchige Schulung , 
Aue Sitenstar andlbuch 





(äuff auf Apple Macintosh it es nur 
im autorisierten Tachhahdel 
Jufonushou: Copy team qmbh 
e Sschuhstr. 3 


&520 erlangen 
OUSA— W383 


Apple urd Macintosh nd eingehagene \Iusenzsichen des Apple Coupuher Une. 








ASSEMbILER ‚’ 





Hex-Dez-Konvertierung für 32-Bit-Zahlen 


von H. Grumser 


Zuweilen stellt sich das Problem, größere 
Integerzahlen von einem Applesoft-Pro- 
gramm an eine Assemblerroutine zu über- 
geben. Diese Schwierigkeit tritt z.B. bei 
der Bearbeitung umfangreicher Random- 
Access-Dateien auf, bei denen die absolu- 
te Dateiposition oftmals 65535 übersteigt. 
Die USR-Funktion gestattet zwar die 
Übergabe von Fließkommazahlen. Die 
Umwandlung in eine Hex-Zahl, die mehr 
als zwei Bytes umfaßt, ist jedoch mit Hilfe 
der Interpreter-Routinen nicht mehr mög- 
lich. 


Die beiden vorgestellten Routinen FPHEX 
und HEXFP erlauben die Umwandlung der 
im Haupt-Fließkomma-Akkumulator abge- 
legten Zahl in eine 4-Byte-Hex-Zahl und 
umgekehrt. Diese Zahl kann durch die 
USR-Funktion an ein Assemblerprogramm 
übergeben und entsprechend verarbeitet 
oder ausgewertet werden, um sie dann 
gegebenenfalls wieder an das Applesoft- 
Programm zu übertragen. 


Beide Routinen sind völlig unabhängig und 
nicht an ein Applesoft-Programm gebun- 
den. Es wäre somit vorstellbar, die im Ap- 
plesoft-Interpreter enthaltenen FP-Routi- 
nen in einem reinen Binärprogramm zu 
benutzen; als Schnittstelle zwischen FP- 
und Integer-Arithmetik könnten dann die 
beiden Konvertierungsroutinen aufgerufen 
werden. 


Auf die Arbeitsweise der Programme soll 
hier nur kurz eingegangen werden. Bei der 
ungepackten Form von FP-Zahlen kann 
der Integer-Wert im wesentlichen dadurch 
gefunden werden, daß die Mantisse (FAC 
$009E-$00A1) so lange verschoben wird, 
bis der Exponent (FACEXP $009D) den 
Wert2 T 32 annimmt. Die vier Mantissen- 
bytes enthalten dann die gewünschte 
Hex-Zahl. Da die Null nicht in der Mantis- 
se, sondern im Exponenten realisiert wird, 
muß sie gesondert behandelt werden. Das 
fünfte Mantissenbyte (FACRND $00AC) 
dient der genaueren Darstellung bei der 
Auswertung von Polynomen und darf we- 
gen der hier eventuell aufretenden Links- 
verschiebung nur eine Null enthalten. Das 
Vorzeichen (FACSIGN $00A2) bleibt in 
beiden Fällen unberücksichtigt. 


Peeker 7/85 


CONVERT 


oo oı9V u umdHr 





VALTYP ‚Typ des letzten Ausdrucks 
FACEXP EQU $9D ‚Exponent von FAC 

FAC EQU $9D ;‚Haupt-Fließkomma-Akku 
FACSIGN EQU $A2 ;‚FAC-Vorzeichen 

FPTEMP EQU $A4 ‚Hilfsregister 

FACRND EQU $AC ;FAC-Rundungsstelle 

CHRGET EQU $Bl ‚Zeichen aus Quelltext holen 
AMPER EQU $3F5 ;&-Vektor 


STROUT EQU $DB3A ‚String ausgeben 

OUTDO EQU $DB5C ‚Zeichen ausgeben 

MSMERR EQU $DD76 ;"TYP MISMATCH ERROR" 
FRMEVL EQU $DD7B ‚beliebigen Ausdruck auswerten 
SYNERR EQU $DECY ;"SYNTAX ERROR" 

NORMFAC EQU $ES2E ;FAC normieren 

ZEROFAC EQU $ES4E :® -> FAC 

OVFLERR EQU $E8D5 ;"OVERFLOW ERROR" 

FACSL EQU $ESF® ;FAC-Mantisse Links-Shift 
FOUT EQU $ED34 ;FAC in String umwandeln 
PRBYTE EQU $FDDA ‚Byte ausgeben 


ORG $399 
0BJ $399 


* Initialisierung 


LDA #>CONVRT ;&-Vektor 

LDX #<CONVRT ; auf CONVeRT 
STA AMPER+2 ‚ setzen 

STX AMPER+1 

RTS 


* Konverierung nach hex oder dezimal 


CONVRT CMP_ #'D' ;Dezimalausdruck? 
BEQ CONDEC 
CMP #'H' ;‚Hex-Zahl? 
BEQ CONHEX 
JMP SYNERR ‚ansonsten "SYNTAX ERROR" 


* Konvertierung von dezimal nach hex 


CONDEC JSR CHRGET ;‚'D' überspringn 
JSR FRMEVL ‚Ausdruck auswerten 
BIT VALTYP ;numerisch? 
BPL EVLOK ‚ja, dann weiter 
JMP MSMERR ‚sonst "TYP MISMATCH" 
JSR FPHEX ‚in 32-Bit-Integer umwandeln 
LDA rg" 
JSR OUTDO ‚"$" ausgeben 
LDX #9 
HEXOUT LDA FAC+1,X ‚alle 4 Bytes 
JSR PRBYTE ;‚ ausgeben 
INX 
CPX #4 
BNE HEXOUT 
RTS 


* Konvertierung von hex nach dezimal 


CONHEX LDA #9 ‚alle 
STA FAC+1 ‚ 4 Bytes 
STA FAC+2 ; nullsetzen 
STA FAC+3 
STA FAC+4 
NXTDIG JSR CHRGET ‚Zeichen holen 
BEQ DECOUT ;EOS, dann FAC ausgeben 
EOR #%00110000 ;Bit 4 & 5 invertieren 


69 





Bei der Benutzung in einem reinen As- 
semblerprogramm sollte der Sprung nach 
$E199 durch eine andere Fehlerbehand- 
lungroutine ersetzt werden. Beide Pro- 
gramme sind relokativ. 


Das Beispielprogramm CONVERT zeigt 
eine Anwendung der beiden Routinen. Die 
Umrechnung von Hexadezimal- in Dezi- 
malzahlen ist mühselig und zeitraubend. 
Mit Hilfe dieser kurzen Ampersand-Utility, 
die durch „BRUN CONVERT” gestartet 
wird, kann von Applesoft aus mit „&D“ 
eine Hex-Zahl ausgegeben werden, wobei 
auf „D“ (für dezimal) jeder beliebige Aus- 
druck, also auch Variablen, folgen kann. 
Das Ergebnis wird im 8stelligen Hex-For- 
mat (32 Bits) ausgegeben. So erhält man 
z.B. auf die Eingabe „&D 10 &* 10° die 
Ausgabe „$00000064*. 


Für den umgekehrten Fall ist an Stelle des 
„D“ ein „H“, gefolgt von einer bis zu 8 
Stellen (= 32 Bits) langen Hex-Zahl, ein- 
zugeben. Wird z.B. „&H3E8“ eingetippt, 
erscheint eine Zeile tiefer die Zahl 1000. 
Die Benutzung hexadezimaler Ausdrücke 
wie „H3E8 + H64“ ist nicht erlaubt. 


Beide Befehle können auch im laufenden 
Programm verwendet werden, wobei dar- 
auf hingewiesen sei, daß die Routine 
selbst keinen Zeilenvorschub (Return) 
sendet, so daß man mehrspaltige Konver- 
tierungstabellen anlegen kann. Die Ausga- 
be auf Drucker oder Diskette ist möglich. 
Die Syntax wurde gewählt, um eine Ein- 
bindung in andere Ampersand-Utilities zu 
ermöglichen. 


‚Ziffer? 

‚ja, dann übernehmen 

‚in Bereich $FA-$FF bringen 
‚war Zeichen zw. 'A'-'F'? 
;ja, dann übernehmen 
‚ansonsten "SYNTAX ERROR" 
‚rechtes Nibble 

‚ nach links 

‚ schieben 


;‚um ein Nibble 

‚ nach links 
(sowohl Akku 
als auch 
FAC) 


‚nächstes Bit 
‚nächstes Zeichen 

;in FP-Zahl umwandeln 
‚in String umwandeln 
‚String ausgeben 


:FAC < 1? 

‚nein, dann weiter 
‚ansonsten 

‚ alle 4 Bytes 

;‚ nullsetzen 


tortig 

‚größer 2 T 32? 

‚nein, dann weiter 

‚sont "OVERFLOW" 
‚negativer Wert von Shifts 


;‚FP-Hilfsregister 
‚Stellenwertigkeit 
; berichtigen 


- $Al) -> FAC 


‚Exponent 

‚ setzen 
;Rundungstelle 
‚ nullsetzen 
;pos. 
‚alle 
‚ Stellen 
; Null? 


Vorzeichen 


‚ja, dann Sonderbehandlung 
‚normieren, fertig 


0349: C9 PA 73 CMP #19 
034B: 90 9 74 BCC SHIFT 
034D: 69 88 75 ADC +$88 
BÖ3AF: C9 FA 76 CMP_ #$F@+1® 
0351: BP 93 77 BCS SHIFT 
0353: AC C9 DE 78 JMP SYNERR 
0356: PA 79 _SHIFT ASL 
0357: ®A 80 ASL 
0358: DA 8l ASL 
0359: PA 82 ASL 
B35A: A2 03 83 LDX #3 
B35C: PA 84 NXTBIT ASL 
035D: 26 Al 85 ROL FAC+4 
D35F: 26 A® 86 ROL FAC+3 
0361: 26 9F 87 ROL FAC+2 
0363: 26 9E 88 ROL FACH+l 
0365: CA 89 DEX 
0366: 1® FA 99 BPL NXTBIT 
0368: 30 D8 91 BMI NXTDIG 
D36A: 20 94 03 92 DECOUT JSR HEXFP 
d36D: 20 34 ED 93 JSR FOUT 
0370: AC 3A DB 94 JMP STROUT 
95 
96 x FAC -> 32-Bit-Integer ($9E - $Al) 
97 
0373: A5 9D 98 FPHEX LDA FACEXP 
0375: 39 @B 99 BMI NOTZER 
0377: A9 O0 109 LDA #9 
0379: 85 9E 101 STA FACH 
037B: 85 9F 192 STA FAC+2 
B37D: 85 A® 103 STA FAC+3 
D37F: 85 Al 194 STA FAC+4 
381: 69 105 RTS 
0382: C9 Al 106 NOTZER CMP +#$80+33 
0384: 90 ®3 107 BCC NOOVFL 
0386: AC D5 E8 198 JMP OVFLERR 
0389: 69 69 109 NOOVFL ADC +#$80-32 
d38B: AB 99 11® LDY #9 
038D: 84 A4 111 STY FPTEMP 
B38F: A2 9D 118 LDX #FAC 
0391: AC FO ES 113 JMP FACSL 
114 
115 x 32-Bit-Integer ($9E 
116 
0394: A9Y AP 117 HEXFP LDA +$89+32 
0396: 85 9D 118 STA FACEXP 
0398: A9Y 99 119 LDA #9 
D39A: 85 AC 129 STA FACRND 
B39C: 85 A2 121 STA FACSIGN 
039E: A5 9E 122 LDA FAC+l 
D3Aß: 05 9F 123 ORA FAC+2 
B3A2: 05 AB 124 ORA FAC+3 
D3AA: 05 Al 125 ORA FAC+4 
D3A6: FO 03 126 BEQ ISZER 
03A8: AC 2E E8 127 JMP NORMFAC 
Ö3AB: AC AE ES 128 ISZER JMP ZEROFAC 


174 Bytes 


Peeker-Sammeldisk +7 


zu Heft 7/1985, einzeln DM 28,— 
im Fortsetzungsbezug DM 20,— 


A 004 PYRAMID.PITTY 

T 084 IPYR.PIIIYO 
1063 I PYRPIT!Y.JI 

B 018 PYFRPITIY.O 

B 016 PYRPITIY\I 

B 024 PYR.PITTY.BACK 
B 026 PYR.PITTY.SHAPE 


T 016 T.MEGAWARP.REL 
B 002 MEGAWARP.REL 


T 017 T.MEGAWARP.9900 
B 002 MEGAWARP.9900 
T 004 T.SPEEDTEST 

B 002 SPEEDTEST 


A 016 FORMAT 
T 039 T.FORMAT.OBJ 
B 005 FORMAT.OBJ 


A 033 BITEDITOR 

B 018 NORMAL 

B 018 FEIT 

B 018 FETT.INVERSE 


;FAC nullsetzen ‘ 


A 007 PASTOPRO.1D 
A 007 PASTOPRO.2D 
T 015 T.PASTOPRO.O 
B 002 PASTOPRO.O 


T 014 T.CONVERT 
B 002 CONVERT 


T 010 T.VORLESER 
B 003 VORLESER 


Hüthig Software Service - Postfach 102869 - 6900 Heidelberg 


70 





Peeker 7/85 





Vorlesestunde 


Apple und S.A.M., ein hilfreiches Gespann 


von Dr. Jürgen B. Kehrel 


Sie haben aus einer Zeitschrift ein Assem- 
blerlisting oder einen Hex-Dump mühsam 
abgetippt, doch irgendwo hat sich ein Feh- 
ler eingeschlichen. Jetzt müssen Sie Ihren 
Speicherauszug mit dem geschriebenen 
Text vergleichen. Ihr Blick wandert zwi- 
schen Bildschirm und Papier hin und her, 
der Zeigefinger hält die Position fest. Doch 
immer wieder kommen Sie aus dem Tritt. 
— Wenn Sie diese Situation jemals ken- 
nengelernt haben, ist das folgende Pro- 
gramm die Erlösung von den erlebten 
Qualen. 


Im Peeker 2/84 wurde die Sprachkarte 
S.A.M. (Software Automatic Mouth) von 
„Don’t Ask Software“ vorgestellt, durch 
die Sie beliebige (vornehmlich englische) 
Texte mit Hilfe der zugehörigen Software 
über einen Lautsprecher ausgeben kön- 
nen. Ich kam bald auf den Gedanken, mir 
die Speicherauszüge von S.A.M. vorlesen 
zu lassen. Ein kurzes Assemblerpro- 
gramm und die RECITER-Software mach- 
ten dies schnell möglich, doch waren die 
Buchstaben A-F sehr schlecht verständ- 
lich. Außerdem belegten S.A.M. und RE- 
CITER fast den halben Speicher. Mein 
nächster Versuch wurde länger, benötigte 
dafür aber nur noch das S.A.M.-Modul, da 
ich diesmal Phoneme benutzte. 


S.A.M. liegt ab $7161 im Speicher, also 


Peeker 7/85 





assemblierte ich meinen Teil direkt dar- 
unter. 

Wenn Sie nacheinander „VORLESER“ 
und „SAM“ laden (BLOAD), können Sie 
beide zusammen mit „BSAVE DUMP- 
VORLESER, A$7050, L$24B0“ abspei- 
chern und später als einen funktionsfähi- 
gen File mit „BRUN DUMPVORLESER" 
starten. 

Ihre Speicherauszüge erhalten Sie weiter- 
hin so, wie es im Benutzerhandbuch des 
Apple beschrieben wird: (hexadezimale) 
Startadresse.Endadresse <Return>. Zu- 
sätzlich zur Bildschirmausgabe spricht 
S.A.M. nun alle Hex-Zahlen mit. 


Programmbeschreibung 


Alle Ausgaben des Apple werden norma- 
lerweise durch das DOS gelenkt, bevor sie 
z.B. zum Bildschirm gelangen. Genau an 
dieser Stelle schaltet sich „VORLESER"“ 
dazwischen. Das Startprogramm überträgt 
den Beginn des Hauptprogramms (Adres- 
se von VEKTOR) in den DOS-Ausgabe- 
Vektor (nur DOS 3.3, nicht ProDOS!) und 
springt in den Monitor. Bei allen „Nicht- 
DOS“-Ausgaben verzweigt nun das 
Hauptprogramm selber zur Bildschirmaus- 
gabe (JSR COUTI1), versorgt aber zusätz- 
lich S.A.M. mit den nötigen Informationen. 
Punkte, Striche, Leerzeichen und Returns 
werden in Pausen umgewandelt, um die 


Pr ASSEMbILER Be 





Verständlichkeit zu erhöhen. Sie können 


die Pausen vergrößern oder verkleinern, 
indem Sie nach $70D7 in den LDA-Befehl 
einen größeren oder kleineren Wert als 
$20 schreiben. 


Alle gültigen Hex-Zahlen werden mit einer 
Routine herausgefiltert, die ich teilweise 
dem Apple-Monitor ($FFB1-$FFBC) ent- 
liehen habe. Alle übrigen Zeichen werden 
nicht bearbeitet (EXIT). Durch die Über- 
prüfung werden gleichzeitig die Hex-Zah- 
len „O“ bis „F“ in die Bytes $00 bis $OF 
umgeformt. Da jeder Tabelleneintrag der 
Phoneme 8 Bytes lang ist, werden die 
Zahlenwerte für die indizierte Adressie- 
rung mit 8 multipliziert. Vorher wird noch 
eine 1 addiert, da die Einträge rückwärts 
gelesen werden. Der passende Tabellen- 
teil wird in den S.A.M.-Puffer nach $9500 
übertragen und dann durch JSR SAM aus- 
gesprochen. Wenn Ihnen irgendeine Aus- 
sprache nicht gefällt, können Sie den Ta- 
belleneintrag ändern, solange die Summe 
der voranstehenden Nullen und der Pho- 
neme gleich 8 ist. Maximal sind 8 Phone- 
me ohne Null zulässig. 

Die Befehle am Anfang und Ende des 
Programms retten nur die relevanten Regi- 
ster und Speicherstellen, da S.A.M. sie 
durch seinen Betrieb zerstört. 

So, und nun wünsche ich Ihnen erfolgrei- 
che Vorlesestunden. 


71 


VORLESER BPL 
2 \ LDA 

En ne LDX 
“ VORLESER ” LDY 
* von Dr. Jürgen B. Kehrel * RTS Ende 
* 1985 * ” 
ak WARTEN LDX +#$c8 

j j ! WARTLI LDA #$29 
Liest Hex-Dumps des Applespei- JSR WAIT 
chers vor, wenn in Slot 4 eine DEX 


;Warte- 
‚schleife 


oo oı9 had 


“*RKKKKK KK 


ORG 


EQU 
EQU 
EQU 
EQU 
EQU 
EQU 


JMP 


HEX 
HEX 
HEX 
DS 


CLD 
LDA 
STA 
LDA 
STA 
JMP 

* 

* 

VEKTOR 


SPRECHEN 


EXIT 
EX1 


$7059 


$9599 
$FDF® 
$FCA8 
$FF69 
$94F6 
$3C 


START 


d9 
09 
d9 
$4 


#<VEKTOR 
$AA53 
#>VEKTOR 
$AA54 
MONZ 


ASAVE 
XSAVE 
YSAVE 

#5 

Al,X 
AISAVE,X 


LOOP 
ASAVE 
COUTL1 
+$89 
#+$8D 
WARTEN 
+$AQ 
WARTEN 
#$AD 
WARTEN 
#+$AE 
WARTEN 
+$BQ 
#$QA 
ZAHL 
+$88 
#+$FA 
EXIT 
#$0F 


#501 


#509 


TAB,Y 
SPRECHEN 
PUFFER,X 


+$08 
LADEN 
+$8D 
PUFFER,X 
SAM 

+$03 
AISAVE,X 
Al,X 


Vorleser liegt direkt unter SAM 


;‚Ausgabep. 
‚Bildschirm 
‚Zeitverzög. 
;Monitor 
‚Einsprung 
‚Zero-Page 


‚Register 
‚und div. 
‚Speicher 
‚retten 
‚Binärmode 


;DOSCSWL 


; DOSCSWH 


‚retten 


‚ausgeben 
Bit. 7 
‚Return 


De 1 Be 1 | 
’ 


3 


;c 1! 
‚;A-F 


;Z000W111l 


‚Tabellenpos. 
‚ausrechnen 


3) 


‚bis $99 


‚Return 


‚Speicher u. 
‚Register zu- 
‚rückschreiben 


7DEB: 
7dEl: 
70EA: 
70E8S: 
7®EB: 
79EE: 
TOF®: 
T7OF3: 
T7OFA: 
7OF7: 
TOFB8: 
TOFA: 
TOFD: 
7199: 
71983: 
7186: 
71908: 
710B: 
71BE: 
7119: 
7112: 
7119: 
Tlle: 
7ı1B: 
7129: 
7122: 
7129: 
7128: 
TI2B: 
T712ZE: 
7138: 
7133: 
7136: 
7138: 
TISR: 
713D: 
7149: 
7142: 
7145: 
7148: 
7149: 
714C: 
7158: 
7153: 
7156: 
7158: 
T15B: 
TIOE: 
TIEF: 


272 Bytes 


HI K* %* %* 


S.A.M-Karte vorhanden und das BNE 
Modul SAM ab $7161 geladen ist. 


BEQ 


HEX 
ASC 


HEX 
ASC 


HEX 
ASC 


HEX 
ASC 


HEX 
ASC 


HEX 
ASC 


HEX 
ASC 


ASC 


HEX 
ASC 


WART1 
EXIT 


Liste der Phoneme 
jeweils 8 Bytes lang 


9 
"WORSYIZ" ;Zero 


DHDnnp 
"NSHAW" 


BDDHnnnp 


"SWUT" 


D009 
"SYIRHT'" ‚Three 


"WWW loJV) 
"R5EHOF"" ‚Four 


DDnnnp 
"VSYAF" ;Five 


uluD) 
"SKSHIS" ;Six 


"NXIVSHES" ;Seven 


Bonn 
"TTTEYE" ;Eight 


DDn00H 
"NSYAN" ;Nine 


DDnnnp 
"SHIYE'" 


nnnn 
"SYIYIB" 


DonH 
"SYIYIS" 


np 
"Syızion® ;D 


BnDnnR 
WSYIYI® 


lu Tol]0]V) 


"FSHE" 


Nachtrag zu RAM.FRE 


Das Programm RAM.FRE aus Peeker 1/2-85, Seite 33 ent- 
hält einen schwerwiegenden Fehler und läuft daher nur in 


wenigen Fällen korrekt. 


Die fehlerfreie Version wird 


scheinen. 





im nächsten Peeker er- 





Peeker 7/85 





Leserbriefe 


DOS-Mover 

Gratuliere zur Peeker! Ich habe 
noch keine bessere Apple-Zeit- 
schrift gesehen. Machen Sie wei- 
ter so! Ein Thema was mich beson- 
ders interessiert, ist das Verschie- 
ben des DOS in die LC: ein DOS- 
Mover, in allen Einzelheiten erklärt. 
Ivo Eschrich, Göttingen 

(Ein neuer DOS-Mover für Stan- 
dard-DOS 3.3 ist in Vorbereitung. 
us) 


BASIS 108 

Nachdem ich mit meinem ITT- 
2020 nicht gerade völlig zufrieden 
war, besorgte ich mir 1982 einen 
BASIS 108 (Hersteller Basis Mi- 
crocomputer in Münster; der ehe- 
malige Apple-Generalimporteur). 
Für jene, die das Gerät noch nicht 
kennen: Dieser Kompatible hat 
130K RAM, 12K ROM (nicht mitge- 
liefert), parallele und serielle 
Schnittstellen, Z80, 80 Zeichen, 
SW-, PAL- und RGB-Ausgang, 
Platz für 2 „dicke“ Laufwerke im 
Gehäuse, Tastatur mit Cursor- 
block, numerischem Block, 15 
4fach belegbaren Funktionstasten, 
sowie die Möglichkeit, IRQs zu er- 
zeugen. Trotzdem sind noch die 
Slots 2-7 frei verfügbar. Leider ist 
deutsche Qualität nicht ganz billig. 
Ich rüstete den Computer mit den 
damals noch fehlenden zweiten 
64K RAM aus, setzte mir die Ap- 
plesoft-EPROMSs ein und war völlig 
zufrieden. Als sich ein Bekannter 
später ebenfalls solch ein Gerät 
zulegte, fiel mir dessen Betriebs- 
anleitung auf (ähnlich „Apple Be- 
nutzer Handbuch“). Da ich nur ei- 
ne vorläufige Ausgabe bekommen 
hatte, fragte ich bei Basis an, ob ich 
solch ein Exemplar kaufen könnte. 
Wenige Tage später bekam ich ko- 
stenlos eines geliefert. Leider 
häuften sich später die Gerüchte, 
daß die Firma nicht mehr existieren 
würde. Das mag kein Computerbe- 
sitzer gerne hören. Von einem Ba- 
sis-Besitzer aus Münster erfuhr ich 
vor knapp einem Jahr, daß es die 
Firma unter neuem Namen einige 
Straßen weiter wieder gibt. Sie 
heißt jetzt Basis Computersysteme 
GmbH. Es störte mich schon eini- 
ge Zeit, daß bei dem Drucker- 
PROM die Tabulierung nicht richtig 
funktionierte. Die jüngeren Exem- 
plare hatten diesen Bug nicht 
mehr. Leider konnte ich es nicht 
selbst ersetzen, da ich niemanden 


Peeker 7/85 


kenne, der schmale PROMs mit 20 
Pins (ähnlich Controller--PROMs) 
brennen kann. Außerdem war 
mein F83-EPROM noch nicht in der 
Lage, softwaremäßig zwischen 40 
und 80 Zeichen umzuschalten. Da 
ich den Computer nur mit 66K 
RAM erhalten hatte, fehlte mir 
noch die Pseudodisk-Software für 
das UCSD-System. Diese Proble- 
me beschrieb ich in einem Brief an 
die „neue“ Firma Basis mit der 
Frage, ob ich die Bauteile und die 
Software erwerben könne. Eine 
halbe Woche später fand ich im 
Briefkasten einen Umschlag, in 
welchem neben einem Begleit- 
schreiben bereits eine ZAP-Dis- 
kette mit der gewünschten Soft- 
ware und die beiden PROMs wa- 
ren! Ich finde, daß eine derartige 
Kulanz Vorbild sein sollte für viele 
andere Firmen (inkl. Apple selbst). 
Tim Berndt, Büdelsdorf 


Erphi-Controller 


Zu Ihrer Frage in Peeker 2/84, ob 
bei Testberichten auch über die 
Schattenseiten des Produkts be- 
richtet werden sollte, meine ich, 
daß dies unbedingt geschehen 
sollte. Nur wenn die positiven und 
negativen Seiten des jeweiligen 
Produkts beschrieben werden, ist 
der potentielle Käufer vor unliebsa- 
men Überraschungen einigerma- 
Ben sicher. Leider werden die 
Schattenseiten des Erphi-Control- 
lers in Peeker 4/85 nicht erwähnt. 
Deshalb möchte ich hier über die 
Nachteile dieses Controllers be- 
richten. Die höhere Speicherkapa- 
zität der Laufwerke kann nur aus- 
genutzt werden, wenn der Control- 
ler in Slot 6 steckt und auch von 
Slot 6 gebootet wird. Ist dies nicht 
der Fall, können nur 35 Tracks ver- 


wendet werden. Da ich von einer 
an Slot 7 angeschlossenen Hard- 
disk bootete, konnte ich auf Floppy 
nur lächerliche 140K verwenden. 
Bei den Floppy-Controllern, bei 
denen das Image der Betriebssy- 
steme auf der Diskette angepaßt 
wird, treten diese Probleme nicht 
auf, da man das angepaßte Be- 
triebssystem auf die Harddisk ko- 
pieren kann, was bei dem Erphi- 
Controller nicht geht. Auch die 
Hardware dieses Controllers ist 
problematisch. Es werden an der 
Schnittstelle zu den Standardlauf- 
werken (Shugart-Bus) Leitungs- 
treiber verwendet, die den bei 150 
Ohm Pull-Up-Widerständen not- 
wendigen Strom nicht liefern kön- 
nen. Es wird empfohlen, Pull-Up- 
Widerstände mit 220 Ohm oder 
mehr zu verwenden. Es wird je- 
doch verschwiegen, wie ein im 
Laufwerk eingelötetes Netzwerk 
mit 150 Ohm gegen 220 Ohm aus- 
getauscht werden kann. 

Ulrich Allgeier, Stuttgart 


lle-80-Z/Z-Karte 

Ich bin seit März 1983 ein mehr 
oder weniger zufriedener Besitzer 
eines Apple Ile. In technischen 
Fragen wurde ich von meinem 
Händler immer sehr gut beraten. 
Lediglich auf die Frage nach der 
doppelt hochauflösenden Grafik, 
die ich nach Lektüre eines Artikels 
in der Zeitschrift „nibble“ von 8/84 
stellte, wußte er nicht weiter und 
gab mir die Telefonnummer der 
Firma Apple. 

Nach einer peinlichen Überprü- 
fung, ob ich denn einen „Original- 
Apple“ hätte, wo ich ihn gekauft 
hätte (hoffentlich ein autorisierter 
Händler!) usw. versprach der PR- 
Mann mir, daß er mich nach einer 
Beratung mit einem Techniker zu- 


LISIKEAIKIKIUN-RIAIMI-KIAIRITIE 


X Kompatibel zur Standard 16K Language Card 


*% Datensicherung nach Abschalten 
* PSEUDO-ROM (z.B. Rom-Edit etc.) 
*% leichter Einbau 

* fuer alle Slots verwendbar 


125K AKKU-RAM-KARTE mit Sottware 


16K STANDARD 


SZ KARTE mit $ottswitch 


288 KARTE 

125K KARTE mit Software 
2ZS6K KARTE mit Sortware 
SI2ZKKARTE mit Software 


115.-DM 


795.-DM 


ade Dermany 


Alle Preise incl. 14% MUST 
zuzuegl. Porto + Verpackung 
Info Gratis 

Haendleranfragen erwuenscht 


Ing.Buero M.Fricke 
Neue Str.13 

1888 Berlin 37 
Tel. 8387/8015652 





leserbkriefe Ey 


rückrufen werde. Beim Rückruf 
wurde mir erklärt, Apple-Ile-Rech- 
ner Revision A deutsch wären 
nicht ausgeliefert worden. Auf mei- 
nen Einwand und der Durchsage 
der Gerätenummer wurde ein er- 
neuter Rückruf ausgemacht. Bei 
diesem Rückruf wurde mir dann 
erklärt, welche Pins zu verbinden 
wären und daß die deutsche Revi- 
sion A (die es dann also doch gab) 
identisch mit der amerikanischen 
Revision B sei. Anschließend wur- 
de mir nahegelegt, in Zukunft doch 
deutsche Zeitschriften zu lesen. 
Für die Zukunft würde ich mich 
über weitere Artikel freuen, die die 
Nutzung der erweiterten 80-Zei- 
chenkarte in eigenen Programmen 
(Zwischenspeicherung größerer 
Matrizen etc.) beschreiben. 
Gerhard Hübschle, Stuttgart 

Ein solches Programm speziell für 
Zahlen-Arrays wird in einem der 
nächsten Peeker-Hefte abge- 
druckt. us. 


Ausgabe und 
Eingabe mi: 


TYPETERM® 


im Slot Ihres 


APPLE IVlle 


Das bedeutet: Computer- 


textverarbeitung von der 


Schreibmaschinentastatur'! 


Steckerfertig ohne Umbau. 
TYPETERN DM479,- 
Interface incl. MWSt. 
für alle BROTHER-Typenrad- 
schreibmaschinen 


Paketpreis: DM 1348,- 


Schreibmaschine 
CE-51 mit TYPETERM 













® 
QUALITÄT AUS ERSTER HAND. 


CE-61 mit TYPETERM ........... DM 1787,- 
EM-80 mit TYPETERM ........... DM 2087,- 
EM-100 mit TYPETERM  ......... DM 3122,- 
TYPETERM-Kit für CE-50 ..... DM 468,- 
CE-25 mit TYPETERM .......... anfragen 


TYPETERM - ein starkes Interface für 
starke Maschinen! Alle Cursor- und Otl- 
Befehle. 2k ROM auf der Karte f. DOS, 
PRODOS, CP/M, PASCAL. Alle Features: 











Hoch-/Tiefstellen, autom. Unterstreichen, 
var. Zeichen- u. Zeilenabst., autom. 
Papierzuführung usw. Ausführl. 
Handbuch vorab: 10,— DM auf Konto 
14770-306 PGiroA Han (Anrechnung). 


TYPETERM ein Produkt von 
® 







I Kock & Mreches GmbH 
——— ———  Posttf., 3004 Isernhagen 4 
electronic Telefon 05139-87393 






73 





Schule und Peeker 

Zu Ihrer Zeitschrift möchte ich Ih- 
nen gratulieren. Sie hebt sich an- 
genehm von den meisten übrigen 
Blättern auf diesem Sektor ab. Was 
mir gefällt möchte ich kurz aufli- 
sten: 

— Ihre Artikel vermitteln den Ein- 
druck der Kompetenz des Autors. 
— Sie bereiten nichts so weit „re- 
daktionell“ auf, bis hinter bunten 
Bildern und flotter Sprache nur 
noch Plattheiten versteckt sind, die 
dem Anfänger nichts nützen und 
den Fortgeschrittenen ärgern. 

— Ihre Autoren haben bei Testbe- 
richten den Mut zu eigener Mei- 
nung und lassen ihr Urteil nicht in 
wolkenreicher Watteverpackung 
verschwinden. 

— Sie vermitteln nicht den Eindruck 
einer Werbeschrift für die Verbrei- 
tung von Microcomputern, gleich 
welcher Firma. 

Was mir noch fehlt und was ich 
noch gerne finden würde kommt 
aus meiner besonderen Interes- 
senlage. Ich unterrichte an der Se- 
kundarstufe | Mathematik und Phy- 
sik und im Wahlfach Informatik. 
Dabei habe ich mir ein Grundla- 


Z 80-Karte 
Disk -Interface 


16KB-RAM-Karte 


Clock Karte 


genwissen erworben. So liegt z.B. 
der Artikel über die Accelerator Ile 
noch außerhalb meines Verständ- 
nishorizontes. Soweit ich in mei- 
nem Umfeld beobachten kann, 
breitet sich die Verwendung des 
Apples im Schulbereich aus, und 
die meisten Lehrer sind keine Spe- 
zialisten, aber doch potentielle Le- 
ser und Abonnenten. Ihre Rubrik 
Schule könnten Sie unter diesem 
Gesichtspunkt ausbauen. Dabei 
sollte der Bereich vor dem Pro- 
grammlisting besser aufbereitet 
werden. Ich denke an Strukto- 
gramme und Programmablaufplä- 
ne. Es wird dadurch für den Nicht- 
Profi-Lehrer leichter auswertbar, 
z.B. im Peeker 3/85 die „Multipre- 
cision“. Mir wäre eine Rechenart 
lieber, die aber in dem gleichen 
Umfang ausführlich dargestellt 
wird. Unter dieser Rubrik Schule 
sollte sich ein Autor nicht für „eher 
primitive“ Techniken quasi ent- 
schuldigen. Die Kunst des Lehrens 
ist es, etwas einfach und einsichtig 
zu machen, was man selbst kann 
und einem einfach vorkommt, ver- 
glichen mit dem Wissen und Kön- 
nen von Spezialisten. Für Lernen- 


= 4 Für Apple Il und Ile 
Die Apple-Kompatiblen $ 


79,— 
89,— 
129, — 


Pal-Karte incı. Modulator 109, — 


80 Zeichen Karte mit Softswitch 
neue Version mit gest. 149,— 
scharfem Bild. Videx-Kompat. 


RS 232 Karte m. Kabel 


Centronics Interface m. Kabel für 
EPSON, Graphikfähig, neue Version 


Eprommer für 2716 bis 27128 
Wild-Karte knackt und kopiert 
geschützte Programme incl. Software 
Speech Karte 
128KB-RAM-Karte 
256KB-RAM-Karte 


Info 1/85: 1,- Porto in Briefm. 


Alle Preise inklusiv Mehrwertsteuer. & Monate 
Garantie. Versand erf. per NN oder Vorkasse 


Händleranfragen erwünscht 


APPLE 





74 


kompatibles 


109, — 
79,— 


139, — 
99,— 


69, — 
360, — 
598, — 






(europlus) 








de ist nach meiner eigenen und 
auch der Erfahrung mit Schülern 
die Aufbereitung einer Aufgaben- 
stellung, bis sie „programmierbar“ 
wird, der schwierigste Teil des We- 
ges. Sie sind hier sicher auch auf 
die Hilfe von Autoren angewiesen. 
Vielleicht könnten Sie hierfür auch 
vorhandene Literatur auswerten, 
was für eine Fachzeitschrift auch 
verdienstvoll ist, da Nicht-Profis 
nicht den Überblick haben können. 
Insgesamt unterstütze ich Ihre 
Konzeption und habe deswegen 
Ihre Zeitschrift abonniert. 
K.H.Ruppert, Würzburg 


Weiter so! 

Nach intensivem Studium von 
Peeker 3/85 und 4/85 habe ich 
mich zum Abonnement entschlos- 
sen. Mit dieser Zeitschrift haben 
Sie wirklich „den Nagel auf den 
Kopf getroffen“, d.h. endlich steht 
einmal sachliche Information vor 
dem seichten Nachpredigen von 
Werbeschriften der Computerher- 
steller. Sehr gut: Endlich macht je- 
mand Apple deutlich, warum der 
Apple II so erfolgreich ist und die 
neueren Produkte bei dieser Ver- 





Komp 64 6502, 64 K + eingeb. 


Komp 2E 
Apple 2 E kompatible 
Rech. im 2E-Design ohne Firmware 


Komp 48 der gute alte Apple! 
6502 + 48 K hochwertige 
Tastatur, ohne Firmware 





kaufspolitik Krücken sind und blei- 
ben. Als Anwender muß ich klar 
sagen, daß es von Apple selbst 
zum IIc keine Alternative gibt. 

Die Devise lautet: Machen Sie wei- 
ter so! 

Dipl.Ing.G.Fischer, Holzmaden 


Nicht weiter so! 

Auch als Noch-Nicht-Abonnent Ih- 
res Peeker sehe ich mit einigem 
Interesse der nächsten Ausgabe 
entgegen, wird er doch sicherlich 
einiges für mich Nützliche enthal- 
ten — vielleicht sogar im redaktio- 
nellen Teil. 

Wie Sie sehen, ist etwas mit Ironie 
und Überheblichkeit sehr schnell 
gesagt, oder in unserem Fall ge- 
schrieben, doch Stil ist das — Sie 
werden mir beipflichten — ganz be- 
stimmt nicht. Doch warum plagt 
mich eigentlich seit der ersten 
Ausgabe das Gefühl, daß hier ein 
Chefredakteur in für mich persön- 
lich zunehmend unerträglicher 
Weise sein Podium benutzt, um 
ständig zu betonen, wie herausra- 
gend gut man selber und wie lä- 
cherlich das Bemühen anderer ist? 
Nun gibt es den Apple ja schon 


1198, 


797,— 


960, 


Z 80 CPU, intelligente mehrfachbel. 
Tasten, 15er Zahlenbl.! Ohne Firmware 


Komp 64 S wie Komp 64, jedoch 
mit abgesetzter eleganter Tastatur 11 
mit 94 +94 Funktionen 


Motherboard 48 K 8 Slots, 


alle IC’s gesockelt, 6502, 48 KB, 


440,— 


ohne Firmware, fertig, geprüft. 
Motherboard 64 K wie 


oben, jedoch mit einge- 


480,— 


bauter Z 80 CPU + 64 K Byte! 


PC-48 PC-64 DISTAR-Drive 


(europlus + 16K) f. alle II-Typen 


199,.899,. 


439,. 
457, 





Klaus Jeschke 


Hard-, Software 
Viert Straße 2-13 
6233 Kelkheim 

= (06198) 7523 












Info gegen DM 1,40 
in Briefmarken 


SPRINGMANN 
Computer GmbH 
Stöckener Str. 199 
3000 Hannover 21 
05111/791111 











Peeker 7/85 

















eine ganze Weile, und der Kreis 
derer, die diesen Rechner in- und 
auswendig kennen, ist erfreulicher- 
weise so groß, daß man die Zuge- 
hörigkeit nicht ebenfalls ständig 
elitär vor sich hertragen muß. 
Resultiert Ihr unzweifelhaft exi- 
stenter Wissensvorsprung in Ap- 
ple-Angelegenheiten vielleicht nur 
aus der Tatsache, daß sich Ihre 
Leser nicht hauptberuflich mit die- 
sem Thema beschäftigen können 
und einmal monatlich die Brosa- 
men aufpeeken, die da vom Re- 
daktionstisch fallen? 

Trotzdem, die Anzahl der fundier- 
ten Aufsätze und das Themen- 
spektrum lassen mich über gewis- 
se (Un)Feinheiten hinwegsehen. 
Daß ich der rein fachlichen Infor- 
mation Vorrang einräume, wollen 
Sie bitte beiliegender Abonne- 
mentbestellung entnehmen. Mit 
meiner Meinung möchte ich aller- 
dings nicht hinter dem Berg blei- 
ben, obwohl ich fast nicht anneh- 
me, daß Sie Ihrer eher Pro ausge- 
richteten Leserbriefseite ein wohl- 
tuendes Gegengewicht verleihen 
wollen — oder doch, man weiß ja 
nie. 

Helge Baars 

Es ist richtig, daß ich mich gele- 
gentlich über Mißstände mockiere, 
und dies werde ich auch weiterhin 
tun, denn nur wenn man einen 
Fehler ins Rampenlicht zerrt, be- 
steht die Hoffnung, daß er auch 
beseitigt wird. Dabei liegt es mir 
allerdings fern, meine Leser durch 
den „Kakao zu ziehen“. Sollte die- 
ser Eindruck bei Ihnen entstanden 
sein, so möchte ich mich nach- 
drücklich bei Ihnen entschuldigen. 
Nehmen wir, da Sie kein Beispiel 
anführen, die mockierende Äuße- 
rung zum Applewriter-IIc-Patch 
aus Heft 3/85, S. 35 in Verbindung 
mit 5/85, S. 68. Tatsache ist doch, 
daß bis heute (Ende Mai 1985) im- 
mer noch der ungepatchte Ap- 
plewriter Ile an Ilc-Besitzer zu de- 
ren Frust verkauft wird. So gese- 
hen hätte ich den Daumen noch 
viel tiefer in die Wunde drücken 
müssen, damit sich endlich etwas 
bewegt! us 


Erfahrungen mit der Apple-Hot- 
line 

Als Einwohner Münchens bin ich 
weniger durch hohe Telefonge- 
bühren der Post behindert, die Ap- 
ple-Hotline in Anspruch zu neh- 
men und tue das so alle 1-2 Mona- 
te. Ich muß sagen, daß meine bis- 
herigen Erfahrungen wesentlich 
positiver waren als mit allen ortsan- 
sässigen Apple-Händlern zusam- 


Peeker 7/85 


men. Während die meisten Händ- 
ler bei Problemen, die auf fehlende 
oder unvollständige Systemunter- 
lagen (Apple Ilc) zurückzuführen 
sind, empfehlen, lieber fertige Pro- 
gramme einzusetzen, bei denen 
diese Probleme nicht auftauchen 
würden, scheint es in der Ingol- 
städter Straße auch Fachleute zu 
geben, die einem weiterhelfen 
können und wollen! Freilich sind 
diese Leute auch überfordert, 
wenn es Apple-Lieferprobleme 
gibt und diese nach irgendeinem 
unerfindliichen Lotterieverfahren 
erledigt werden. Das liegt aber 
eher an der Behandlung Europas 
als zweitklassigem Absatzmarkt 
durch die Amerikaner — siehe Soft- 
ware-Support! Mein letzter Anruf 
bezog sich auf ein Problem mit 
dem Horizontal-Tabulator beim 
Apple-Drucker (Imagewriter), der 
nicht funktionieren wollte. Einen 
Tag später bekam ich ein Pro- 
grammbeispiel zugestellt, mein 
Problem war gelöst und stellte sich 
als ein Fehler im Drucker-Manual 
heraus, in dem ein neuer Funk- 
tionscode Ctri-E noch nicht ausge- 
wiesen war. Danke, Herr Birkl! 
Josef Schön, München 


II-Plus-Programm auf dem lic? 
Ihre Zeitschrift „Peeker“, die ins- 
gesamt recht gut gemacht ist, ver- 
suche ich regelmäßig zu lesen, 
wobei ich als computermäßig un- 
bedarfter Apple Ilc-Neubesitzer 
aber gerne gestehe, daß das 
Niveau Ihrer Darstellungem meine 
derzeitigen Möglichkeiten bei wei- 
tem übersteigt. 

Ich möchte den Leserbrief von 
Herrn Dr. Hickey (Mehr Apple Ilcin 
5/85) unterstützen und ebenfalls 
für eine umfangreichere Berück- 
sichtigung des IlIc-Typs plädieren. 
Allerdings sollten Sie hierbei be- 
rücksichtigen, daß sich gerade mit 
diesem Gerät häufig Apple-Neulin- 
ge/Einsteiger herumplagen. Mo- 
mentan ärgere ich mich, daß die 
angeblich 100%ige Kompatibilität 
IIc-Ile ja leider nicht zutrifft. Kon- 
kret: EZ-DRAW 3.3, das auf unse- 
ren Schulrechnern (Ile) problemlos 
läuft, funktioniert nicht auf meinem 
Ilc. 

Mich interessiert, wie man so et- 
was „lauffähig“ macht, wobei ich 
mir vorstelle, daß einerseits die 
Problematik von allgemeinerem In- 
teresse ist und andererseits für ei- 
nen gewieften Programmierer die 
Aufgabe leicht lösbar sein müßte. 
Dipl.Ing.Wolfgang Hannich 


Neue Preise # 7 


IBM-PC-Systemeinheit+Laufwerk 

IBM deutsche DIN-Tastatur 

IBM-Bildschirm Color 

IBM-PC/XT-Compatible Computer+Zubehör- 
Mainboard XT f. 16bit+256K-RAM+8 Slots, Leerkarte 
Disk Controller leer (f. 2+2-360KB-Drives) 
[efelfel@eie:Tel 1] GR =1274,6: 14753 

Parallel Printer Leerkarte 

512K-RAM Leerkarte 

Mainboard XT-16bit+128K-RAM+8SI. best.+gepr. 
(bis 256K-aufr.) 

64KB-RAM-Chip-Aufrüstsatz 

Disk Controller gepr. (f. 2+2-360KB-Drives) 

Color Graphikkarte gepr 

Parallel Printer-Karte gepr. o. Kabel 
512K-RAM-Karte gepr. (OKB) 

Multi VO Karte (Par.+Ser.+Uhr gepuffert) gepr 
Funktionstastatur dt. oder ASCII+15er Block 
130W-Netzteil mit eingebautem Ventilator 
360KB-Diskdrive Slimline 

XT-128K-16bit Rechner (bis 256K-aufrüstbar) +360K-Drive 
+F. Tastatur im IBM-look like Geh.+130W-Netzteil 
Software+ Manual für IBM+compatible Geräte 
Microsoft flight simulator 


Lotus 1-2-3 
Framework 


APPLE-BUS COMPUTERPLATINEN+PERIPHERIE 
Motherboard durchkontaktet mit Lötstoplack r 
M-board Il 48K, gesockelt, vollbest.+gepr. 545,-- 
M-board Il 64K+Z80 CPU, gesockelt, v.best.+gepr 685,-- 





M-board Ile 64K vollbestückt+gepr. 945,-- 
APOLLO Il Kunststoff-Leergehäuse 135,-- 
APOLLO Il-Leergeh. incl. Funkt.-Tast. 275,-- 


Leerplatine: 16K-RAM, Z80/CPU-, Controller DOS 3.3, 
Parallel-Druckerkarte, Ser. Int. V24, 802/24Z-Karte 


PAL-Modulatorkarte, je 18,95 
Entwicklungslochraster-Leerplatine 49,-- 
16K-Speicher-Karte geprüft 97,-- 
Z-80 CPU-Karte geprüft 87,-- 
Controller DOS 3.3-Karte geprüft 88,-- 
Auto-Controller DOS 3.2/3.3-Karte gepr. 145,-- 
Parallel-Drucker-Karte+Kabel geprüft 119,-- 
8bit par. Grappler-Int.+64K-Buffer+Kabel gepr. 575,-- 
Seriell-Interface-Karte V24 geprüft 175,-- 
80-Zeichen/24-Zeilen-Karte geprüft 145,-- 
80Z/24Z-Karte+Softswitch-Schalter Leerplatine 49,-- 
80Z/24Z-Karte+Softswitch-Schalter geprüft 178,-- 
IEEE-488 Int. Karte gepr. 375,-- 
PAL-Modulator/Color-Karte geprüft 175,-- 
128K Speicher-Leerkarte 89,-- 
128K-Speicher-Leerkarte+Software 145,-- 
128K-Speicher-Karte+Software geprüft 439,-- 
256K-Speicher-lLeerk+4 Spezial ICs+Software 335,-- 
256K-Speicher-Karte+Software geprüft 898,-- 
EPROM-Bumer (2708/16/32/64) geprüft 215,-- 


UHF/TV-Modulator universell 27,50 
Lüfter anclipsbar (220 V) 

APOLLO // (48K)+UHF-Mod.+Gr/Kl vollbest.+gepr.+F.-T. 

APOLLO // (64K)+Disk II F+Contr.+12”-Monitor 

APOLLO //A (48K)+Gr/Kl+15er-Tastatur vollbest.+gepr.+F.-T. 109 
APOLLO //A (64K)+Disk II F+Contr.+12"-Mon 1 
Aufpreis für frei programmierbare Funktionstastatur 

plus 4 Cursor-Tast Lizle/äKey77.\ 

APOLLO // ASKF (48K) Sep. Keyboard+Gr/Kl+ 

15er-Bl.+Funkt.-Tasten im „IBM-look like“ Gehäuse 

Aufpreis für M-board // 64K+Z80 CPU 
APPLE-DuoDisk, 2 x 143 KB+Controller orig. 21 
APPLE-Disk // Laufwerk+Contr.+Kab. DOS 3.3+ProDOS orig. 777,-- 
APPLE-Disk // (2. Laufwerk) orig. 666,-- 





















Disk //+Contr.+Kabel DOS 3.3 (Siemens) im Geh. 593,-- 
Disk // (2. Laufwerk, Siemens) im Geh. 498,-- 
Disk //F+Contr.+Kab. DOS 3.3 (1/2 Höhe) im Geh. 524,-- 
Disk //F (2. Laufwerk, 1/2 Höhe) i. Geh. 429,-- 
APPLE ProDOS HB+Disk orig. 69,-- 
Erphi Duo-Disk 1,2 MByte incl. Netzteil+Contr. 2148,-- 
Erphi AFDC 2 Controller 288,-- 
Maus f. Apple // incl. Manual+Software 188,-- 
APPLESOFT+Turorial+Reference Manual engl. 75,-- 
APPLE-DOS 3.3 Manual engl. 25,-- 
APPLE-Pascal Reference+Operating Manual engl. 48,-- 
APPLE-Pascal USCD 1.1. Disks+Manuals orig. 179,-- 
APPLE-Pascal Reference Hb. dt. 49,-- 
APPLE-Pascal Language Hb. dt 39,-- 
APPLE-FORTH Manual engl. 69,-- 
APPLE-Fortran Manual engl. 69,-- 
CP/M-Software Vol. IH, Manual engl. 69,-- 
VIDEX 80Z/Z-Karte Manual engl 25,-- 
APPLE // Pascal-Handbuch deutsch (te-wi) 59,-- 
APPLE //-Anwenderhandbuch deutsch (te-wi) 56,-- 
6502-Programmier-Handbuch deutsch 45,-- 
6502-Anwendungen Handbuch deutsch (Rod.Zaks) 38,-- 


Software+ Manual f. APPLE+compatible Geräte 

apple how to, apple soft tool kit, cp/m basic compiler, cbasic, 
dbase // ver. 2.4, wordstar+ mailmerge + spellstar mit installprogramm, 
apple logo, datastar, calcstar, pfs file, pfs grapg, pfs retport, apple 
fortran, cp/m c language, spitfire simulator, c-programming language, 
flight simulator, visicalc, visischedule, visitrend, multiplan, supersort, 
microsoft cobol 80, microsoft fortran 80, dgraph+dbase utility. 


APOLLO //e (64 K) PAL+15er Block * NEU * NEU * NEU * 

APOLLO //e 128K+802/24Z-Karte 

APPLE //e (64K) PAL 

APPLE //e (64K)+Disk Il F+Contr+12”-Monitor 

802/24Z+Softswitch+64K-RAM-Karte geprüft 

APPLE //c (128K) 

Z80 Karte gepr. f. APPLE //c 

Macintosh System (128K) 

Macintosh System (512K) 
PSON RX 80, 8bit/parallel 

EPSON RX 80F/T, 8bit/parallel 

EPSON RX 100, öbit/parallel 

EPSON FX 80F/T, 8bit/parallel 
PSON FX 100, 8bit/parallel 1739,-- 

EPSON Traktoraufsatz für FX 80 129,50 

APPLE/EPSON-Drucker Graphic-Interface+Kabel 

MX 80/82, FX/RX 80 Spezialfarbband-Kassette 

BROTHER-Typenraddr. HR 15XL 8bit/par. neustes Mod 

STAR SG10, 8bit/par 

Zenith ZVM 123 gr. 12” oder Zenith ZVM 122 or. 12” 15 MHz 

SANYO DM 2212 12” orange 15 MHz 

APPLE // Video-Mon. 12" 20 MHz, entspiegelt orig 

5,4" 1D-Disk-Soft-verstärkt, Neutral, 1. Wahl 10er Pack 
























514” 1D-Disk-Soft-verstärkt, Neutral, 1. Wahl 100er Pack i 
514” 1D-Disk-Soft-verstärkt, Neutral, 1. Wahl 1000er Pack 2799,-- 
514” 2D-Disk-Soft-verstärkt 10er Pack 47,50 
514” 2D-Disk-Soft-verstärkt 100er Pack 

gnetics-Disketten-verstärkt 1. Wahl 


ektoriert 10er Pack 
lee k 





N -Softsektoriert er Pack 
a” ID-Softsektoriert 100er Pack 
3M-Scotch-Disketten - verstärkt in Box+Aufkl. 1. Wahl 


312” Microdisketten 10er Pack. 149,50 
5Y4” 1D-Disk-Soft- o. Hardsektoriert 10er Pack 48,90 
514” 1D-Disk-Soft- o. Hardsektoriert 100er Pack 478,-- 


514” 2D-Disk-Soft- 0. Hardsektoriert 10er Pack 69,90 
514” 2D-Disk-Soft- 0. Hardsektoriert 100er Pack 668,-—- 
514" 1/96 Softsekotoriert 10er Pack 81,50 
514” 1/96 Softsekotoriert 100er Pack 769,-- 
5,4” 2/96 Softsekotoriert 10er Pack 88,90 
5,4” 2/96 Softsekotoriert 100er Pack 849,-- 
8” Soft- o. Hardsektoriert 10er Pack 67,-- 
8” Soft- o. Hardsektoriert 100er Pack 649,-- 
8” 1D-Disk-Softsektoriert 10er Pack 86,-- 
8” 1D-Disk-Softsektoriert 100er Pack 829,-- 


8” 2D-Disk-Softsektoriert 10er Pack 99,-- 
8" 2D-Disk-Softsektoriert 100er Pack 
3M-Scotch 514” Flüssig-Reinigungsset (2 Disk.) 
BASF Disketten - verstärkt in Box+Aufkleber 1. Wahl 
514" 0.8" Soft-o.H yriert 10er Pack 

5 so S 





ert 
0e 


Ta K 01212 27: 1177 
oriert 100er Pack 
10er Pack 


rt 10er Pack 

ua Lole7-72 27-1019 

2 MByte 10er Pack 

Talfelelate Bio EIS CH art iTe) 





Ya" Disket Archivbox für 10 Disks 
Va” Disketten-Archivbox 10er Pack B 
514” Disketten-Archivbox für 15 Disks 19,95 
54” Disk-Karteikasten Kunststoff (ca. 80 Disk) 29,95 
514” Disk-Karteikasten Kunststoff (ca. 80 Disk) 49,95 
514" 3M-Disk-K.K. abschließbar (ca. 50 Disk) 
514” Disk-K.K. Rauchglas, abschließb. (ca 80 Disk) 














4000 Et.-Aufkl. (10 
16000 Etiketten-Au 
4000 Etik.-Aufkl. einrei 


OSZILLOSCOPE HAMEG ab Lager 


Bei Vorauszahlung frei Empfangsstation unversichert in der BRD, aus- 
genommen Papier und Etiketten, sonst N.N.+V.S. ab DM 30,-- 


R, A -Yealgejalfe a 










Telex: 0772642 aaa-d 
Habsburgerstraße 134 
7800 FREIBURG, Tel. (07 61) 276864 
Bauelemente - Bausätze - uP's 
Meßgeräte - Zubehör - Fachliteratur 
Fachgeschäft für Elektronik + Mikrocomputer 





















Der Einsteiger 
Apple lle 64 KB 
Apple Monitor Il 
Apple Disk Il 
m. Contr. 
DM 3998,- 










Der Vielseitige 
Apple Macintosh 
128 KB 
incl. MacPaint/ 
MacWrite 
Tastatur und Maus 
DM 6776,- 


CHILE EHE EEE ICHE 
CHCHUDIC TUE DEE DIE DC Due DE Dar Due Da DE DE DE DE DE DE DLIICH 
KON DD De DE DE DD DER DD DB DD BEL DIL DE ED 


ED Du DD Dur Dar Da Dur Da Due DE DD DE DD} 
BED DE Du Dur DE Du DE DE Due Du DE DE Dee De) 
.. 
... 
... 
DD HE N DE Due DE Du DuE DuE Du DE DE Du DU DIE DIE DE DE DE DE DEE DE DE DE} 


pe; imagewiiter; 


Si E-&raphike- 





Die Zuverlässige 
80 Zeichen/64 KRAM 
m. Pseudo-Floppy- 
Software u. ausführ- 
lichem Handbuch 









Der Schöne 
Brother HR 15 XL 
Typenraddrucker, 
15 Z/sec. 
DM 1398, 


Bei Abnahme von größeren 


Stückzahlen noch 
günstigere Preise 
möglich. 


Hamburger 
Computer 
Versand 
2 040-7928226 
Postfach 610125 
2000 Hamburg 61 
























75 





Wenn ein Programm erstens die 
Sprachkarte = 16K-Erweiterung 
und zweitens die 80-Zeichenkarte 
nicht benutzen, dann können Sie 
alle älteren Programme, die ur- 
sprünglich für den Apple II Plus 
gedacht waren, problemlos ver- 
wenden, wenn Sie FPBASIC in die 
Sprachkarte laden: 

1. DOS 3.3 booten 

2. Ctrl-Reset drücken (Damit geht 
man sicher, daß die 16K-Erweite- 
rung schreibfähig gemacht wird.) 
3. BLOAD FPBASIC, A$DO00 

4. CALL -151 

5. C083 C083 

6. Ctrl-C 

7. Ab jetzt kein Ctrl-Reset und kein 
PR#3 mehr! 

8. Altprogramm mit RUN XXX oder 
BRUN YYY starten. 

Es versteht sich, daß dieses Ver- 
fahren nur dann funktioniert, wenn 
man ungeschützte Programme 
verwendet, die nicht mit PR#6 ge- 
bootet werden müssen. Ferner be- 
achte man, daß man das 50 (fünf- 
zig) Sektoren umfassende FPBA- 
SIC von der alten System-Master- 
Diskette laden muß (also nicht ein 
um das Monitor-ROM verkürztes 
FPBASIC!). Schließlich sei darauf 
hingewiesen, daß sich Ile-Pro- 
gramm, die nicht auf dem Ilc lau- 
fen, auch dann nicht simulieren 
lassen, wenn man den |le-ROM- 
Inhalt in die Sprachkarte lädt. Zu 
diesem Zweck müßten nämlich 
zahlreiche Adresse geändert 
werden. 

us 


76 


MEGACORE 


Festplatte mit 10 MBytes 
getestet von H. Grumser 


Die Firma Compu Shack vertreibt 


eine 10-MByte-Festplatte engli- 
scher Herkunft mit dem Controller 
MEGABOARD, der von der Frank 
& Britting Elektronik Entwicklungs- 
GmbH entwickelt (und der Peeker- 
Redaktion auch von dort zu Test- 
zwecken zugesandt) wurde. Die 
Harddisk wird an Stelle des Apple- 
Netzteils eingesetzt und über- 
nimmt dann die Spannungsversor- 
gung des Computers. Der Liefer- 
umfang umfaßt neben einem deut- 
schen Handbuch auch die entspre- 
chende Software (5,25-Zoll-Dis- 
ketten), die zur Initialisierung und 
Konfigurierung der Platte erforder- 
lich ist. 


Inbetriebnahme 

Laut Angabe von Compu Shack 
kann der Einbau in drei Minuten 
vollzogen werden. Wer das ca. DM 
5000.- teure Gerät und seinen 
nicht minder wertvollen Apple nicht 
aufs Spiel setzten möchte, muß mit 
einer halben Stunde rechnen. 
(Herr Grumser ist Physiker, also 
kein „blutiger Laie“. Anm.d.Red.) 

Die erste Inbetriebnahme läßt eini- 
ge Sekunden an der vollbrachten 
Arbeit zweifeln, da der gewohnte 
Piepston zunächst ausbleibt. (Vor 
der Versorgung des Rechners wird 
das Laufwerk hochgefahren.) Die 
Präsenz der Harddisk kann stets 
durch das Laufwerksgeräusch ver- 
nommen werden. Wen dieses 
Summen stört, kann die Festplatte 
„auslagern“ und unter dem 
Schreibtisch deponieren. 








Nach dem Booten der mitgeliefer- 
ten Diskette in einem Floppy-Disk- 
Laufwerk kann die Harddisk initiali- 
siert werden, wobei der Inhalt der 
Diskette auf die Festplatte kopiert 
wird. Somit steht in jedem Fall ein 
DOS-Volume zur Verfügung, das 
beim nächsten Kaltstart gebootet 
wird. 


Betriebssysteme 

Für die künftige Arbeit mit der 
Festplatte sollte man nach dem In- 
itialisieren Bereiche für die ver- 
schiedenen Betriebssysteme ein- 
richten. Eine spätere Änderung 
dieser Organisation ist mit einem 
erheblichen Datentransfer auf der 
Platte verbunden und kann zum 
Verlust von Einträgen führen, da 
die vier Bereiche stets aufeinan- 
derfolgend angeordnet sind. Diese 
Konfigurierung erfolgt durch Aufruf 
der einzelnen Betriebssystem-Ma- 
nager aus dem Hauptmenü: 


DOS 3.3 — Da unter DOS 3.3 keine 
größeren Datenmengen verwaltet 
werden können, wird dieser Be- 
reich in einzelne Volumes unter- 
teilt, die dann durch Volume- und 
Drive-Nummer angesprochen 
werden. Die somit mögliche Simu- 
lierung von 2 & 255 Floppy-Disk- 
Laufwerken (je 140 KBytes) er- 
laubt die Benutzung der komplet- 
ten Festplatte unter DOS 3.3. 


CP/M - Unter CP/M (Version 2.2 
56K) können 6 Volumes (A-F) mit 


unterschiedlicher Größe verwaltet 
werden (128-7680K pro Volume in 
128K-Schritten). Um weiterhin auf 
„normale“ Disketten zugreifen zu 
können, besteht die Möglichkeit, 
ein oder mehrere Volumes zu des- 
aktivieren, d. h. der Zugriff erfolgt 
dann auf das entsprechende Dis- 
kettenlaufwerk und nicht mehr auf 
die Festplatte. 


UCSD-Pascal — Der Zugriff unter 
UCSD-Pascal (Apple-Pascal 1.1) 
muß wie oben eingestellt werden. 
An Stelle der Volumes treten hier 
die Units 4, 5, 9, 10, 11 und 12, die 
mit beliebiger Länge konfiguriert 
werden können. 


ProDOS - Die Einrichtung eines 
ProDOS-Bereichs (ProDOS Ver- 
sion 1.0.1) ist wegen der Konzep- 
tion dieses Betriebssystems für 
größere Massenspeicher sehr ein- 
fach. Es genügt die Eingabe der 
gewünschten Größe, die dann als 
ein Volume verwaltet wird. 


Welches Betriebssystem beim 
Kaltstart gebootet wird, kann mit 
Hilfe des Boot-Managers gewählt 
werden. Die mit einer der mitgelie- 
ferten Disketten gepatchten Syste- 
me müssen jedoch vorher auf die 
Harddisk kopiert werden. Spezielle 
Treiberprogramme erlauben die 
Umschaltung von einem Betriebs- 
system zum nächsten ohne Kalt- 
start, wobei stets der Weg über das 
beim Initialisieren angelegte DOS- 
3.3-Volume beschritten wird. 

Die entsprechende Patch-Soft- 
ware für andere Betriebssystem- 
Versionen ist in Vorbereitung und 
kann individuell erfragt werden. 


Handbuch 

Das spiralgebundene Handbuch 
(branchenübliches Schönschreib- 
drucker-Printout) beschreibt auf 
ca. 50 Seiten sehr ausführlich die 
Anwendung der mitgelieferten 
Programme und die Inbetriebnah- 
me der Harddisk bezüglich Forma- 
tierung und Konfigurierung. Auf 
Schwierigkeiten bei der Umorgani- 
sierung der Platte wird ebenso ein- 
gegangen wie auf die Erstellung 
von Sicherungskopien. 

Als besonders hilfreich für Assem- 
bler- und System-Programmierer 
erweist sich die Beschreibung des 
WD1010-Prozessors von Western 
Digital als Controllerchip und eine 
Erläuterung zur Programmierung 
des Sektorzugriffs auf Systemebe- 
ne. Die transparente Dokumentie- 
rung erinnert an die „gute alte 
Apple-Zeit“. 


Peeker 7/85 





Übertragungsrate 

Die Übertragungsrate kann nur auf 
Systemebene exakt ermittelt wer- 
den. Eine weniger zeitaufwendige 
Lösung ist die Verwendung eines 
Benchmark-Tests. Die zwei kurzen 
Programme WRITE.TEST und 
READ.TEST ergeben unter Pro- 
DOS eine Übertragungsrate von 
ca. 4000 Bytes/s beim Schreiben 
und ca. 15400 Bytes/s beim Le- 
sen. Dies sind reine Brutto-Werte, 
da die systeminterne Verwaltungs- 
zeit (insbesondere die Bearbei- 
tungszet des Applesoft-Pro- 
gramms) mit gemessen wird. Ein 
ähnlicher Test bei der Profile (in 
„Apple ProDOS für Aufsteiger“, 
5.18, Hüthig Verlag) ergab etwa 
die gleichen Werte. 


Anmerkung zur MEGACORE/ME- 
GABOARD unter ProDOS: Die 


Star Delta-10 


Harddisk wird unabhängig vom 
Controller-Slot unter „S7, D1“ an- 
gesprochen (gilt auch für DOS 
3.3). Die RAM-Disk bleibt erhalten. 
Der Gerätetreiber wird über 
$BF1E/$BFIF angesprungen und 
befindet sich auf der Controller- 
Karte ab $C7DO. 


Fazit 

Die Kombination aus MEGACORE 
und MEGABOARD bietet einen 
kompatiblen Übergang auf Mas- 
senspeicher höherer Kapazität. 
Die Übertragung erfordert nur we- 
nige Eingriffe in bereits vorhande- 
ne Programme, da die Anpassung 
an die verschiedenen Betriebssy- 
steme unter Einhaltung der Spiel- 
regeln vorgenommen wurde. Für 
Anwender mit erhöhten 
Datenmengen ist dieses System 
daher empfehlenswert. 


und Grafstar-Interface 


getestet von Karl-Walter Bott 


Gerade bei Matrixdruckern ist die 
Angebotsvielfat der einzelnen 
Hersteller für den Käufer kaum 
noch zu überblicken. 

Vor geraumer Zeit konnte man Ma- 
trixdrucker noch in zwei Gruppen 
einteilen. Zur ersten Gruppe ge- 
hörten die preiswerten, langsamen 
Drucker mit mäßigen Grafikfähig- 
keiten und minderer Ausgabequa- 
lität. Zur zweiten Gruppe zählten 
die Produkte, die durch ein sehr 
gutes Schriftbild, hohe Grafikauflö- 
sung und Schriftqualität überzeug- 
ten, aber weniger durch einen gün- 
stigen Preis. Mit dem Star Delta- 
10 erwirbt man einen Matrixdruk- 
ker, der mehr kann, als nur Listings 
zu Papier bringen, und dabei ein 
günstiges Preis-Leistungsverhält- 
nis aufweist. 


Das Aufstellen des Druckers be- 
reitet keine Schwierigkeiten, wenn 
man die mitgelieferte deutsche Be- 
dienungsanleitung zur Hand 
nimmt. 

Auf der Rückseite des Gerätes be- 
finden sich die zwei Anschlüsse 
der Schnittstellen zum Computer. 


Peeker 7/85 


Der Delta-10 ist serienmäßig mit 
einer Parallelschnittstelle und ei- 
nem seriellen Interface RS232C 
ausgestattet. Zur Standardausrü- 
stung gehört auch ein 8K großer 
Druckerpuffer. Ist die Verbindung 
zum Computer hergestellt, müs- 
sen noch die drei DIP-Schalter 
(DIP = Dual Inline Package) ge- 
setzt werden, von denen nur einer 
auf der Rückseite frei zugänglich 
ist. Die beiden anderen können nur 
nach dem Abnehmen der Gehäuse- 
abdeckung bedient werden. Mit 
den DIP-Schaltern können Para- 
meter voreingestellt werden, mit 
denen der Drucker beim Einschal- 
ten initialisiert wird: Zeichensatz, 
Formularlänge, Zeichenabstand, 
Zeilenvorschub, Auswahl der 
Schnittstelle sowie Betriebsart und 
Baud-Rate bei seriellem Betrieb. 
Neben dem normalen ASCII-Zei- 
chensatz gibt es 83 internationale 
Zeichensätze (bzw. deren landes- 
spezifische Sonderzeichen wie B, 
A, Ö, U usw.), 96 Kursiv-Zeichen, 
32 Blockgrafik-Zeichen, 64 Spe- 
zial-Zeichen sowie 2 mal 96 frei 
programmierbare Zeichen. 


4 TESTDERICHTE 





WRITE.TEST (255s) 


PRINT CHR$ (4)"OPEN XXX" 
PRINT CHR$ (4)"WRITE XXX" 
X$ = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA”" 
FOR X = 1 TO 5ß@®: PRINT X$: NEXT 

50 PRINT CHR$ (4)"CLOSE" 


60 PRINT CHR$ (7) 


READ.TEST (65s) 


FOR Y = ® TO 99: X = X x 1009 

PRINT CHR$ (4)"BLOAD XXX, TTXT, Al0000,L10009,B"xX 
NEXT 

PRINT CHR$ (4)"CLOSE" 

PRINT CHR$ (7) 





Normale Schrift 
Überall ist Flatz 
für manchen klugen Satz. 


gedehnte Schrift 


rlatz 
H-lıiagem BSatı . 


iıby er alı a st 
# kım meamchem 


kursiweschrift 
überall ist Platz 
fin manchen klugen Setzr.. 


Elite Schrift 
überall ist Flatz 
für manchen klugen Satz. 


Komprimierte Schrift 
überall ist Platz 
für manchen klugen Satz. 


Doppeldruck 
überall ist Platz 
fiir manchen klugen Satz. 


Her vorgehobener Druck 
überall ist Platz M 
für manchen klugen Satz. 


Unterstreichen 


mass ha sn nmmeiemnnnnn N tn tete h ann rauen manner menu eneee ee 


tür manchen klugen Satz. 


Hochgestellt 
yeaı? 


Tiefgestellt 
H=0 


#7 





Die Vielzahl der Druckmodi bietet 
jedem Benutzer etwas, vor allem, 
weil diese untereinander gemischt 
werden können. Alle Schriftarten 
und Druckmodi sind vom Pro- 
gramm her auszuwählen. Die 
Steuerzeichen sind weitgehend 
Epson-kompatibel. Der Zeilenvor- 
schub ist ebenfalls programmier- 
bar. Die kleinste Schrittweite ist n/ 
144 Zoll. 


Das Drucken erfolgt bidirektional 
mit einer Geschwindigkeit von ma- 
ximal 160 Zeichen pro Sekunde. 
Die maximale Anzahl von Zeichen 
pro Druckzeile beträgt 132. Die 
Druckgeschwindigkeit zusammen 
mit dem Druckerpuffer dürfte auch 
Benutzer zufrieden stellen, die 
überdurchschnittlich viel zu druk- 
ken haben. 


Um Grafiken auf das Papier zu 
bringen, gibt es neben der Mög- 
lichkeit, Zeichenmuster selbst zu 
definieren, den Bit-Image-Grafik- 
modus. Die maximale Auflösung 
durch die Einzelnadelansteuerung 


aaa electronic gmbh, Freiburg . 


ccp-datentechnik, Hamburg 


Copy-Team GmbH, Erlangen . 


CP/D oHG, Düsseldorf 
U. Dobbertin, Brühl 


beträgt 1920 Punkte und ist auch 
auf dem Papier durchaus überzeu- 
gend. 


Als weitere Besonderheiten des 
Druckers sind noch Macro-Instruk- 
tionen zu nennen, mit deren Hilfe 
Steuersequenzen gespeichert 
werden können, sowie der einge- 
baute Selbsttest. 


Der Delta-10 verarbeitet fast alle 
gängigen Papierarten und Formu- 
larabmessungen: Einzelblatt, Rol- 
lenpapier und Endlospapier. Als 
Farbband dient ein normales 
Schreibmaschinen-Farbband. 


Nach so vielen positiven Aspekten 
sollten die Nachteile des Druckers 
nicht verschwiegen werden. Zu- 
nächst ist hier die Anordnung des 


'Traktors zu nennen. Der Traktor 


wird oberhalb des Druckkopfes auf 
den Drucker aufgesetzt. Der Nach- 
teil dieser Anordnung liegt in der 
mangelnden Ausnutzung des End- 
lospapiers. Will man den Druck am 
Anfang einer neuen Seite (Perfora- 
tion) beginnen, wird jedesmal das 


75 
15 
68 
15 
51 


D.O.S. Computersysteme, Schwäbisch Hall. . . . ....32 
Forth-Systeme A. Flesch, Titisee-Neustadt . . . . . .. 15 


Ingenieurbüro Fricke, Berlin 


73 


Hamburger Computer Versand, Hamburg. . . . .....75 


IBS Computertechnik, Bielefeld 
Interkom electronic, Isernhagen 


Intus, Waldshut-Tiengen . 
Klaus Jeschke, Kelkheim 
E.-W. Meyer, Frohnhausen 


48 
73 
49 
74 
49 


Micromint Computer GmbH, Erkrath . . . 2 2.2..15 
U. Mohwinkel Electronic, Leverkusen . . . 2 22..2...49 


Pandabooks, Berlin 
Pandasoft, Berlin 
r + r electronic, Heidelberg 


R.v. Decker’s Verlag, Heidelberg 
Röckrath Microcomputer, Aachen 


11 
13 
61 
56 
49 


Springmann Computer GmbH, Hannover . . . . .......74 


Summagraphics, München . 


te-wi-Verlag GmbH, München . 


Tombstone-Micro, Berlin 
Ueding electronics, Menden 


. 82 
.uU4 
51 
22 


Einem Teil dieser Ausgabe liegt ein Prospekt der Firma Interdata 


GmbH, Singen bei. 


Wir bitten unsere Leser um Beachtung. 


78 





erste Blatt verschenkt, da der 
Druckkopf unterhalb des Traktors 
angeordnet ist. Bei der Verarbei- 
tung von Einzelblattpapier muß der 
Traktor abgenommen werden. Das 
Einziehen des Einzelblattes gestal- 
tet sich etwas schwierig, zumin- 
dest, wenn das Blatt exakt horizon- 
tal und vertikal ausgerichtet sein 
soll, da keine Markierung am Ge- 
häuse angebracht ist. Eine aufge- 
klebte Plastikschiene, mit einer 
Längeneinteillung am Gehäuse 
oberhalb der Walze, würde hier 
Abhilfe schaffen. Um das Blatt ver- 
tikal zu justieren, muß das Blatt so 
weit eingezogen werden, daß die 
Enden parallel ausgerichtet wer- 
den können. Danach kann man 
dann das Blatt in die erste Druck- 
zeile zurückdrehen. Dies empfiehlt 
sich mit Rücksicht auf die Drucker- 
mechanik nur, wenn der Drucker 
ausgeschaltet ist. Also bei z.B. 20 
Serienbriefe 20mal Ein- und Aus- 
schalten, was auch nicht gerade 
die Lebensdauer der Elektonik er- 
höht. 


Ansonsten machen Mechanik und 
Elektronik einen soliden Eindruck. 


Zur Kommunikation zwischen Ap- 
ple-Computern und Star-Druckern 
wird das Parallel-Interface Graf- 
star angeboten. Das Interface er- 
möglicht eine Hardcopy von den 
Grafik- und Textseiten, wobei auch 
eine Vergrößerung, Drehung und 
Invertieren der Grafik-Hardcopy 
möglich ist. Die Steuerzeichen 
sind weitgehend Epson-kompati- 
bel. Eine Besonderheit ist die Mög- 
lichkeit, die Ausgabe über eigene 
Assembler-Routinen umzuleiten, 
die entweder ab $0300 oder 
$D000 der Language-Card begin- 
nen können. 

Wenn das Interface in Slot 1 instal- 
liert ist, treten keine Probleme auf. 
Die Firmware arbeitet unter CP/M, 
UCSD, DOS und ProDOS ein- 
wandfrei. Mit den testweise aus- 
probierten Programmen Apple- 
works, Applewriter und Wordstar 
3.3 funktionierte das Grafstar-In- 
terface ohne Probleme. 


...„ in eigener Sache: 


die Nachfrage nach dem vergriffe- 
nen Heft 1/84 ist groß. Ab sofort 
können Sie eine Heftkopie direkt 
beim Verlag bestellen. 


Preis für das Inland: 
DM 10,- inkl. Versandkosten 


für das Ausland: 


DM 12,- inkl. Versandkosten 
eventuelle Luftpostzuschläge zzgl. 


Der nächste Peeker 
Heft 8/1985 
erscheint am 
22. 7. 1985 





Peeker 7/85 


Hucthig-FACHBUCH-TIP 


DELHRETEHEE 








.@ de min 2 22 _ 


für Aufsteiger 


Mit ausführlichen 
Ol TeTe ST a ud dorelg:Tanlaslelikzjellällzie 


IS 


— 


N 








„Apple ProDOS für Aufsteiger“ ist Ebenso ausführlich wird die externe Apple ProDOS 

der Nachfolgeband zu „Apple DOS Speicherorganisation geschildert “ z 

3.3 — Tips und Tricks“. Applesoft- (Spuren, Sektoren, Blocks, Directory- für Aufsteiger 

Programmierer, die unter DOS 3.3 Struktur, Volume Bit Map, Dateistruk- ee 

gearbeitet haben, werden sich turen usw.). Schließlich wird das MLI Mit ausführlichen Programm- 

schnell an ProDOS gewöhnen, da (Machine Language Interface) mit beispielen 

ProDOS und DOS 3.3 in dieser Hin- zahlreichen praktischen Anwen- 

sicht weitgehend kompatibel sind. dungsbeispielen erläutert. Insgesamt von Ulrich Stiehl 

Dagegen müssen Assembler- enthält ProDOS-Buch ca. 70 Seiten R 

Programmierer völlig umdenken. mit eigens für dieses Werk entwickel- Band 1: 2. geänderte Auflage 1985, 
Deshalb liegt das Schwergewicht ten Programmen. 208 S., kart., DM 28,— 

dieses Nachfolgebandes auf der As- Im zweiten Teil werden die Basic- 

semblerprogrammierung und der System-Befehle für Applesoft-Pro- 

minutiösen Darstellung der ProDOS- grammierer systematisch erläutert. 

internen Systemadressen, die jedoch Allerdings wird die Kenntnis von + 
auch für Applesoft-Programmierer „Apple DOS 3.3“ vorausgesetzt. “ 
von großer Bedeutung sind. „ProDOS für Aufsteiger“ ist deshalb RE 
Im ersten Teil wird zunächst ein all- nicht nur für Assembler —, sondern DRS 
gemeiner Überblick über das neue auch für fortgeschrittene Appelsoft- ch ® as 
„Professional Disk Operation Sy- Programmierer ein unentbehrliches E RSINH 

stem” gegeben. Im Anschluß daran Nachschlage- und Handbuch für die s Nix = 

folgt eine Gegenüberstellung der Programmierpraxis. DIENT 


Geschwindigkeit des Diskettenzu- 
griffs. Dann wird die interne Speicher - 
organisation detailliert beschrieben 
(Boot-Vorgang, Zero-Page, ProDOS- 
Vektoren, Basic-System-Puffer, 
Basic-System-Global-Page, Basic- 
Command-Handler, I/O-Vektoren, 
ProDOS-Global-Page, Language- 
Card-Organisation, Interrupt, Disk- 
Driver, Reboot-Programm usw.). ar 





APPLE | 
ADCAL 


Betriebssystem 


APBLEI 
PASCAL 








Apple II Betriebssystem, 
272 Seiten, DM 49,- 


Apple II Sprache, 
216 Seiten, DM 39,- 


Pascal 1.2 Addendum, 112 Seiten, 
DM 36,- 


PPLE II PASCAL 


Betriebssystem und 
Sprache 


Erstes deutsches Referenzwerk sämtlicher Befehle 
und Systemroutinen von Apple II Pascal — mit Adden- 
dum einschließlich Version Pascal 1.2! 


Gültig für Apple II, I Plus, He einschließlich der 
128K/80 Zeichen-Konfiguration. 


Betriebssystem kommentiert ausführlich und in 
Deutsch Funktion und Benutzung der fast 60 System- 
routinen’des Apple II Pascal Betriebssystems. 


Sprache ist das vollständige, deutsche Referenzwerk 
der „Apple Pascal“-Programmiersprache mit u.a. Infor- 
mationen über professionelle Pascal-Programmierung, 
Turtlegraphics, Programmbibliothek etc. 


In Vorbereitung: Addendum Pascal 1.2, ein 
Zusatz zum Buch „Betriebssystem“ für 1.2-Benutzer in 
Deutsch. 


„Nach Unterlagen von Apple Deutschland hergestellt” 


te-wi Verlag GmbH 
Theo-Prosel-Weg Il 
8000 München 40 


ul 


Weiterführende Literatur... 


Das Ver, 
APPLE II - Handbuch 
(L. Poole) 


Erst mit Hilfe dieses Leitfadens werden Sie 
Ihren Apple II erfolgreich einsetzen, denn 
Text und Bildmaterial gehen weit über das 
hinaus, was herstellerseitig an Literatur 


angeboten wird. 


LOGO - 
Jeder kann programmieren 
(Daniel Watt) 

.| Buch des Jahres in den USA. Für die 

» Computer APPLE II, C-64, IBM PC, ATARI 

| bis 520 ST., TI-99 und CPC 464/664. 

Hochwertiges Textbuch für Logo-Kurse für 
zu Hause und im Lehrbereich. 


Fe 384 Seiten, A4, DM 59,- 
Neu überarbeitet und jetzt um die spezifi- 


schen Eigenheiten der Modelle Ile und Ilc 
2] erweitert. 500 Seiten, Softcover, DM 66,- 


tm 4298 


APPLE II PASCAL - 
Eine praktische Anleitung 
(A. Luehrmann, H. Peckham) 





ı Unentbehrlich für alle, die die Programmier- 


1 sprache PASCAL lernen wollen und 


Zugang zu einem Apple-Computer haben. 


544 Seiten, Softcover, DM 59,- 





| Computer für Kinder 
(Sally Greenwood Larson) 


Ein Buch für Kinder. ihre Lehrer 


und Eltern. 


„Computer für Kinder“ richtet 
sich an Kinder im Alter von 8 bis 
13 Jahren, für deren Interesse an 
Computern dieses Buch bewulßst 


 oeschrieben wurde. 
Unterhaltsam und leicht verständlich. 
A4 quer. Fadenheftung. DM 29.80 


APPLE II - Bewegte 3D-Graphik 

(Phil Cohen) 

Selbstentworfene Graphiken und Dia- 
gramme - animiert oder als Standbilder — 
eben oder räumlich: alle erforderlichen 
BASIC-Programme mit Erklärung finden 
Sie in diesem Buch. 

200 Seiten, Softcover, DM 49,- 








Apple Maschinensprache 

Für BASIC-Programmierer der einfachste 
Zugang zur Muttersprache des Apple. Wesent- 
lich schnellere Maschinenprogramme, direkte 
Manipulation des Mikroprozessors 6502 im 
Apple — als Brücke dorthin benötigt dieses 
Buch nur die drei BASIC-Befehle, POKE, 
CALL, PEEK. D. Inman/K. Inman. DM 49, — 


APPLE 


MASCHINEN 
SPRACHE 


DON INMAN - KURT INMAN 





| NEU: REPARATURANLEITUNG 
COMPUTER: APPLE II, I PLUS 


DM 29,80 





Noch im Programm: 
Eye or 2111111112 02 1011 Wa EX 221 110) 03 BD) Bo) Run 
VisiCalc, 50 Programme auf Diskette, DM 79,- 


In Vorbereitung: 
Macintosh Programmier-Handbuch DM 59,-